获取按其中一列分组的行顺序

问题描述 投票:0回答:1

假设我有下表:

id 类别_id item_id 创建于
7 11 106 2024-05-06
6 3 102 2024-05-06
5 11 101 2024-05-05
4 9 98 2024-05-04
3 3 97 2024-05-03
2 1 91 2024-05-02
1 11 89 2024-05-01

如何选择所有行,并添加一列来表示按类别分组的每个项目的创建顺序?

结果应该是:

id 类别_id item_id 按类别排序的商品 创建于
7 11 106 3 2024-05-06
6 3 102 2 2024-05-06
5 11 101 2 2024-05-05
4 9 98 1 2024-05-04
3 3 97 1 2024-05-03
2 1 91 1 2024-05-02
1 11 89 1 2024-05-01

可以按照

id
列或
created_at

的顺序

性能良好的查询是否可行?或者我需要添加一些更多信息,例如关系表?

sql sql-server
1个回答
0
投票

你能试试这个吗:

SELECT t1.*,
ROW_NUMBER() OVER(PARTITION BY created_at ORDER BY category_ID
FROM yourtable t1
;
© www.soinside.com 2019 - 2024. All rights reserved.