[英]COUNT with RANK mysql
從我的數據庫中我想得到員工的姓氏,收入高於他的員工人數,然后按降序排列員工的工資; 收入最高的員工為零。 我是這樣做的:
SELECT 0+COUNT(b.salary) rank
, a.lname
, a.salary
, COUNT(*) AS employee_count
FROM employee a LEFT OUTER JOIN employee b
ON a.salary<b.salary
GROUP BY a.salary, a.lname
ORDER BY salary DESC
結果顯示如下:
到現在為止還挺好。 除此之外,博格不應該在那里。 因為沒有人比他賺得更多。 現在發生這種情況是因為使用了LEFT OUTER JOIN。 我嘗試使用INNER JOIN,但它給出了語法錯誤。 所以問題是如何使INNER JOIN與此一起工作?
如果您只想消除最高值:
SELECT *
FROM (
SELECT 0+COUNT(b.salary) rank
, a.lname
, a.salary
, COUNT(*) AS employee_count
FROM employee a
LEFT OUTER JOIN employee b
ON a.salary < b.salary
GROUP BY a.salary, a.lname
ORDER BY salary DESC
) T1
WHERE T1.rank > 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.