如何在SQL Server中每5分钟获取一次数据?

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

只是徘徊,是否有可能在SQL Server中按名称将数据输入每5分钟组。

示例:表中包含以下数据:

id    name          message       datetime
---   --------      -------       --------   
1     David         test 1        2017-12-18 10:00
2     David         test 2        2017-12-18 10:01
3     David         test 3        2017-12-18 10:03
4     Alvin         bluh 1        2017-12-18 10:04
5     Alvin         bluh 2        2017-12-18 10:04
6     David         test 4        2017-12-18 10:06

如何在SQL Server中获得如下结果?

id    name          message       datetime
---   --------      -------       --------   
1     David         test 1        2017-12-18 10:00
2     David         test 2        
3     David         test 3        
4     Alvin         bluh 1        2017-12-18 10:04
5     Alvin         bluh 2        
6     David         test 4        2017-12-18 10:06
sql sql-server
1个回答
1
投票

按名称分组,组日期时间为5分钟

select  id, name, message, 
        datetime    = case when rn = 1 then datetime end    
from    (
            select  *, rn = row_number() over (partition by name, 
                                dateadd(minute, datediff(minute, 0, datetime) / 5 * 5, 0) 
                               order by datetime)
            from    yourtable t
        ) d
order by id
© www.soinside.com 2019 - 2024. All rights reserved.