簡體   English   中英

COUNT與RANK mysql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM