postgresql - PostgreSQL GROUP BY 子句
问题描述
我想返回那些在城市方面薪水最高的人的名字。这是我的桌子:
通过使用 GROUP BY 子句,我能够按城市打印最高薪水。但是如何返回那些薪水最高的员工的名字。我想返回这样的东西:
. 因为这些人在城市中的薪水最高。
解决方案
您可以使用rank
窗口函数对每个城市的员工进行排名,然后将该查询与另一个查询包装起来,以获得每个城市的最高员工:
SELECT ename, city, salary
FROM (SELECT ename, city, salary,
RANK() OVER (PARTITION BY city ORDER BY salary DESC) AS rk
FROM employee) t
WHERE rk = 1
推荐阅读
- java - 无法在 Java for...循环中迭代对象
- generics - 处理惯用函数链中的空列表
- c++ - 可以捕获 std::vector 的重新分配吗?
- python - Pandas grouper 尝试按月分组时抛出错误:得到 rangeindex 的实例
- mysql - SQL 选择唯一值(书籍和作者)
- angular-cli-v7 - 装饰器不支持函数调用,但调用了“动画”
- javascript - 完整日历 eventElement.draggable 不是函数使用 `editable: true` 选项时
- python - 同时基于多个参数过滤数据帧
- python - 从二维概率 numpy 数组中采样?
- c++ - 无法在 Qt 之外运行 Qt Creator GUI。“应用程序无法正确启动 (0xc000007b)”错误