可以使用子查询或者CTE(公共表表达式)来实现排序后分组。

使用子查询:

SELECT t1.group_id, t1.name, t1.salary
FROM (
  SELECT group_id, name, salary,
         ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY salary DESC) AS rn
  FROM employee
) t1
WHERE t1.rn = 1

使用CTE:

WITH cte AS (
  SELECT group_id, name, salary,
         ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY salary DESC) AS rn
  FROM employee
)
SELECT group_id, name, salary
FROM cte
WHERE rn = 1
sql 排序后进行分组

原文地址: https://www.cveoy.top/t/topic/0Tl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录