1.各部門工資最高的員工(難度:中等)
注意:使用group by的時(shí)候注服,出現(xiàn)在select后面的字段,要么是是聚合函數(shù)中的,要么就是group by 中的字段
比如錯(cuò)誤答案:
SELECT NAME , MAX(Salary) FROM Employee GROUP BY DepartmentId
1.png
這與題目中的數(shù)據(jù)不符措近,所以這么寫是錯(cuò)誤的
題解:
SELECT
Department.name AS 'Department',
Employee.name AS 'Employee',
Salary
FROM
Employee
JOIN
Department ON Employee.DepartmentId = Department.Id
WHERE
(Employee.DepartmentId , Salary) IN
( SELECT
DepartmentId, MAX(Salary)
FROM
Employee
GROUP BY DepartmentId
)
;
作者:LeetCode
鏈接:https://leetcode-cn.com/problems/department-highest-salary/solution/bu-men-gong-zi-zui-gao-de-yuan-gong-by-leetcode/
來源:力扣(LeetCode)
著作權(quán)歸作者所有溶弟。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處瞭郑。
2.換座位(難度:中等)
這里面使用了交叉連結(jié)(CROSS JOIN)
使用逗號(hào)分隔兩個(gè)表,并省略 ON 子句 (舊式寫法)
SELECT
(CASE
WHEN MOD(id, 2) != 0 AND counts != id THEN id + 1
WHEN MOD(id, 2) != 0 AND counts = id THEN id
ELSE id - 1
END) AS id,
student
FROM
seat,
(SELECT
COUNT(*) AS counts
FROM
seat) AS seat_counts
ORDER BY id;
作者:LeetCode
鏈接:https://leetcode-cn.com/problems/exchange-seats/solution/huan-zuo-wei-by-leetcode/
來源:力扣(LeetCode)
著作權(quán)歸作者所有辜御。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處屈张。
3.分?jǐn)?shù)排名(難度:中等)
對(duì)于 MySQL 解決方案擒权,如果要轉(zhuǎn)義用作列名的保留字,可以在關(guān)鍵字之前和之后使用撇號(hào)袜茧。例如 'Rank'
SELECT Score,
DENSE_RANK() OVER (ORDER BY score DESC) as 'Rank'
FROM Scores;