繁体   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