[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;

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

扫描二维码关注公众号,回复: 10230889 查看本文章

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;

猜你喜欢

转载自www.cnblogs.com/wyz-2020/p/12584777.html