Sql 如何按时间间隔分组数据?

Sql 如何按时间间隔分组数据?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,这是我的桌子: SNO ID TimeRecorded LAT LON STATE SPEED 7 0 2015-05-16 12:54:09.000 22.63006 88.362144 NULL 0 8 0 2015-05-16 12:55:09.000 22.63006 88.362144 NULL 0 9 1 2015-05-16 13:01:09.000 22.6300

这是我的桌子:

SNO ID  TimeRecorded             LAT          LON      STATE    SPEED

7   0   2015-05-16 12:54:09.000 22.63006    88.362144   NULL    0
8   0   2015-05-16 12:55:09.000 22.63006    88.362144   NULL    0
9   1   2015-05-16 13:01:09.000 22.63006    88.362144   NULL    0
10  1   2015-05-16 13:05:09.000 22.63006    88.362144   NULL    0
如何只选择1小时的1条记录?我想这样选择:

7   0   2015-05-16 12:54:09.000 22.63006    88.362144   NULL    0 and
10  1   2015-05-16 13:05:09.000 22.63006    88.362144   NULL    0
使用
行编号()


注意:这将返回每个小时的第一条记录。如果确实需要任意记录,可以使用
orderbynewid()
而不是
orderbytimerecorded

在示例中确定要获取SNO 10吗?你想要一小时内的第一张唱片吗?这个问题不是很重要clear@christianBarron,这是位置报告,车速通常为5公里/小时,所以我只需要一个小时的记录,即任何一个。。。
select t.*
from (select t.*,
             row_number() over (partition by cast(timerecorded as date), datepart(hour, timerecorded)
                                order by timerecorded
                               ) as seqnum
      from table t
     ) t
where seqnum = 1;