mysql - COUNT 与 RANK mysql

标签 mysql sql

我想从我的数据库中获取员工的姓氏,比他收入高的员 worker 数,然后将员工的薪水降序排列;收入最高的员工为零。这是我的做法:

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

结果如下所示:

enter image description here

到目前为止一切顺利。除了,博格甚至不应该在那里。因为没有人比他挣得更​​多。现在发生这种情况是因为使用了 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

关于mysql - COUNT 与 RANK mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20230646/

相关文章:

c# - 是什么导致我的 ASP.NET MVC/AJAX 网站上出现这些 SQL 转换错误? [视频显示问题]

mysql - 如何在 SQL 中转换 PromQL 查询?

mysql - EXISTS 中的递归 CTE 查询

MySQL 工作台 : merging multiple rows into one row using same call_ID

mysql 从转储 : ERROR 1452 (23000) at line 13: Cannot add or update a child row: a foreign key constraint fails 加载

mysql - Heroku 数据库 :pull to local mysql utf8

Java 数据库编程 - 为什么这些值不是 "equal"?

sql - 如何插入到使用顺序GUID作为主键的表中?

php - 将所选 radio 的值传递到下一页

mysql - linux下通过cmd导入数据库