SQL嵌套分组依据,第一行

时间:2012-03-26 07:12:37

标签: sql sql-server-2008 group-by

我需要你的帮助。我有DateTime和Person列的表。每个人每个日期都有多个记录。我需要为每个日期获得每个人的第一条记录。我想应该使用嵌套group by,但我不知道如何实现它。 提前致谢

3 个答案:

答案 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)

您可以使用分组中的分钟(日期/时间)列和剩余列。