分组排列.txt

来自「SQL语言常用的一些命令各代码」· 文本 代码 · 共 35 行

TXT
35
字号
有表A:

Date                     Value
2006-6-1 01:00:00        1 
2006-6-1 01:15:00        1 
2006-6-1 01:30:00        2 
2006-6-1 01:45:00        2 
2006-6-1 02:00:00        3 
2006-6-1 02:15:00        3 
2006-6-1 02:30:00        4 
2006-6-1 02:45:00        4 
...........

现在要将其按小时汇总到表B里去:

Date                    Value
2006-6-1 01:00:00        6 
2006-6-1 02:00:00        14

表B的value 为表A的一小时内的所有值的累加,表A的统计频率不定,可能是15分钟,可能是5分钟,但不超过1小时。
/*解答*/
declare @A table(Date datetime,Value int)
insert into @A select '2006-6-1 01:00:00',1
union all      select '2006-6-1 01:15:00',1
union all      select '2006-6-1 01:30:00' ,       2 
union all      select '2006-6-1 01:45:00' ,       2 
union all      select '2006-6-1 02:00:00' ,       3 
union all      select '2006-6-1 02:15:00' ,       3 
union all      select '2006-6-1 02:30:00' ,       4
union all      select '2006-6-1 02:45:00' ,       4 
/*进行分组查询,用convert(varchar(13),Date,121)分组*/
select convert(varchar(13),Date,121)+':00:00'as Date, sum(Value) as count from @A
group by convert(varchar(13),Date,121)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?