dre*_*rew 1 t-sql sql-server greatest-n-per-group
我正在使用Microsoft SQL.我有一个表,其中包含由两个不同类别和日期存储的信息.例如:
ID Cat1 Cat2 Date/Time Data
1 1 A 11:00 456
2 1 B 11:01 789
3 1 A 11:01 123
4 2 A 11:05 987
5 2 B 11:06 654
6 1 A 11:06 321
Run Code Online (Sandbox Code Playgroud)
我想为Cat1和Cat2的每个独特组合提取一行,我需要具有最早日期的行.在上面我想要ID = 1,2,4和5.
谢谢
看一下row_number()MSDN.
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY date_time, id) rn
FROM mytable
) q
WHERE rn = 1
Run Code Online (Sandbox Code Playgroud)
(在SQL Fiddle上运行代码)