[SQL]183+184+185+196+197

183.从不订购的客户

题目

# Write your MySQL query statement below
SELECT Name AS Customers
FROM Customers LEFT JOIN Orders
ON Customers.Id = Orders.CustomerId
WHERE Orders.CustomerId IS NULL;

184. 部门工资最高的员工

题目

SELECT d.Name AS Department, e.Name AS Employee, e.Salary
FROM Department d, Employee e
WHERE e.DepartmentId = d.id
AND (e.Salary, e.DepartmentId) IN (SELECT max(Salary), DepartmentId
FROM Employee
GROUP BY DepartmentId);

185.部门工资前三高的员工

题目

解答

SELECT d.Name AS Department, e1.Name AS Employee, e1.Salary
FROM Employee e1, Department d 
WHERE e1.DepartmentId = d.Id 
AND 3 > (SELECT COUNT(DISTINCT e2.Salary)
FROM Employee AS e2
WHERE e1.Salary < e2.Salary
AND e1.DepartmentId = e2.DepartmentId) -- primary key只能是Department,不可以是Id
ORDER BY d.Name, Salary DESC;

我现在也不知道主键那里到底是为什么

196. 删除重复的电子邮箱

DELETE FROM Person
WHERE id NOT IN (SELECT need.id
    FROM ((SELECT MIN(Id) as id
        FROM Person
        GROUP BY Email) AS need));

197.上升的温度

SELECT a.Id
FROM Weather a JOIN Weather b
ON a.Temperature > b.Temperature
AND DATEDIFF(a.RecordDate, b.RecordDate) = 1;
posted @ 2020-03-27 22:24  whiky  阅读(230)  评论(0编辑  收藏  举报