Sql server 根据om最大值pr.houer将原始数据表中的数据分组到另一个

Sql server 根据om最大值pr.houer将原始数据表中的数据分组到另一个,sql-server,datetime,group-by,aggregate-functions,Sql Server,Datetime,Group By,Aggregate Functions,我真的希望有人能帮我解决这个棘手的问题 我有一个不断接收数据的表(如数据日志) 表24*7接收数据。 每小时可以有许多记录和许多名称A、B、C、D等 生菜 LogTime Name Value 2015-05-16 00:29:00 A 03 2015-05-16 00:48:00 A 15 2015-05-16 00:29:00 B 30 2015-05-16 00:35:00

我真的希望有人能帮我解决这个棘手的问题

我有一个不断接收数据的表(如数据日志) 表24*7接收数据。 每小时可以有许多记录和许多名称A、B、C、D等

生菜

LogTime               Name   Value  
2015-05-16 00:29:00     A       03  
2015-05-16 00:48:00     A       15      
2015-05-16 00:29:00     B       30  
2015-05-16 00:35:00     B       32  
2015-05-16 00:59:00     B       66          
2015-05-16 01:25:11     A       88  
2015-05-16 01:52:00     A       100  
2015-05-16 01:26:45     B       5  
2015-05-16 01:57:00     B       51                                 
每天午夜后,我都想运行一个返回到前一天的过程 XXXX-XX-XX 00:00:00至XXXX-XX-XX 23:59:59。 取每个名称的最大值,按小时分组,并将结果插入到另一个表中,格式如下

表格结果

TimeByHouer            Name     Value  
2015-05-08 01:00:00      A         15  
2015-05-08 01:00:00      B         66  
2015-05-08 02:00:00      A         100  
2015-05-08 02:00:00      B         51
请尝试以下查询:

declare @t table(logtime datetime, name char(1), value int)
insert into @t(logtime, name, value) values
('2015-05-16 00:29:00', 'A', 3),
('2015-05-16 00:48:00', 'A', 15),
('2015-05-16 00:29:00', 'B', 30),  
('2015-05-16 00:35:00', 'B', 32), 
('2015-05-16 00:59:00', 'B', 66),    
('2015-05-16 01:25:11', 'A', 88), 
('2015-05-16 01:52:00', 'A', 100), 
('2015-05-16 01:26:45', 'B', 5),
('2015-05-16 01:57:00', 'B', 51)

; with Hs(TimeByHouer, name, value) as (
Select H = DATETIMEFROMPARTS(DATEPART(YEAR, logtime), DATEPART(MONTH, logtime), DATEPART(DAY, logtime), DATEPART(HOUR, logtime), 0, 0, 0)
, name, value From @t
)
Select TimeByHouer, name, Max(value) From Hs Group By TimeByHouer, name
Order By TimeByHouer, name
对于2012,您还可以使用:

Select DATEADD(HOUR, DATEPART(HOUR, logtime), cast(cast(logtime as date) as datetime))

我很难理解你在请求什么帮助。请澄清您希望完成的内容,并演示您已经尝试过的内容,包括任何相关代码。我刚刚编辑了您的问题以提高可读性。抱歉,我无法在论坛中找到表格格式,我添加了uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,它真的很好用。非常感谢你的帮助。我先测试了一下:)你能接受我的答案吗。谢谢