如何按一列(即id)排序表,同时根据另一列(即name)将行分组在一起?
在我的示例中,我希望查询首先返回由id DESC排序的行,但保持按名称对行进行分组。
表:
id | name
---+---------
1 | bob
3 | charles
2 | bob
4 | charles
5 | alice
6 | bob
7 | alice
8 | bob期望产出:
id | name
---+---------
8 | bob
6 | bob
2 | bob
1 | bob
7 | alice
5 | alice
4 | charles
3 | charles发布于 2022-01-11 09:45:57
你可以试试这个:
select * from table_name
order by max(id) over(partition by name) desc, id desc最大max(id)的名字将排在第一位,由id desc排序。
https://stackoverflow.com/questions/70664505
复制相似问题