我需要你的帮助。我有DateTime和Person列的表。每个人每个日期都有多个记录。我需要为每个日期获得每个人的第一条记录。我想应该使用嵌套group by,但我不知道如何实现它。 提前致谢
答案 0 :(得分:3)
您可以ROW_NUMBER使用OVER clause:
SELECT *
FROM
(
SELECT Your_Columns,
ROW_NUMBER() OVER (PARTITION BY Person, [DateTime] ORDER BY Your_Column_That_Decides_The_Order_Of_Records) AS R
FROM Your_Table
) v
WHERE v.R = 1
答案 1 :(得分:1)
我建议查看sql server为此提供的row_number和其他排名函数。非常有用的工具,您也可以在其他场景中使用 http://msdn.microsoft.com/en-us/library/ms189798.aspx
答案 2 :(得分:0)
您可以使用分组中的分钟(日期/时间)列和剩余列。