SELECT T1.*
FROM (
SELECT *, ROW_NUMBER() OVER(PARTITION BY column1 ORDER BY column2 desc) AS rn
FROM table_name
) T1
WHERE T1.rn = 1;
通过使用窗口函数( ROW_NUMBER())在内部查询中为每一行分配一个行号,然后在外部查询中筛选行号为1的记录。这样也可以实现先排序后分组的效果。
按照column1分组,按照column2排序。
SELECT T1.*
FROM (
SELECT *, ROW_NUMBER() OVER(PARTITION BY column1 ORDER BY column2 desc) AS rn
FROM table_name
) T1
WHERE T1.rn = 1;
通过使用窗口函数( ROW_NUMBER())在内部查询中为每一行分配一个行号,然后在外部查询中筛选行号为1的记录。这样也可以实现先排序后分组的效果。
按照column1分组,按照column2排序。