当前位置: 代码迷 >> Sql Server >> 怎么按分钟合并\统计数据
  详细解决方案

怎么按分钟合并\统计数据

热度:521   发布时间:2016-04-24 10:46:52.0
如何按分钟合并\统计数据?
我目前有一张表,是从2000年-2013年所有单个商品的历史价格,表结构如下:
id | 价格发布时间 | 价格
1 | 2000/03/19 05:30:19.101 | 912.24
2 | 2000/03/19 05:30:19.301 | 912.22
3 | 2000/03/19 05:30:19.540 | 912.21
4 | 2000/03/19 05:30:20.101 | 912.24
...

原始表中商品的价格每秒钟都有好几次变化,现在为了提高效率,想把表的数据合并成以分钟为单位的(也有可能是2分钟为单位的)一张新表,新的表结构大致如下:
id | 价格发布时间 | 价格一分钟内发布的次数 | 价格总计
1 | 2000/03/19 05:31:00.000 | 150 | 109470.00
...

请问应该如何从原始表中用sql语句查出新表需要的数据?
------解决方案--------------------
select min(id) id,CONVERT(varchar(19),价格发布时间,121) 价格发布时间,sum(价格) 价格总计
  from table group by CONVERT(varchar(19),价格发布时间,121)
------解决方案--------------------
楼主试试,都可以的,
select min(id) id, min(createTime),sum(价格) 价格总计 from ( select * ,Convert(varchar(13),createTime,121)+ case 
 when  datepart(mi,createTime)<=15 then 'aa'
 when datepart(mi,createTime) between 16 and 30 then 'bb' 
 when datepart(mi,createTime) between 31 and 45 then 'cc' 
when datepart(mi,createTime) between 46 and 59 then 'dd' end as date  from table) a group by date



引用:
Quote: 引用:

select min(id) id,CONVERT(varchar(19),价格发布时间,121) 价格发布时间,sum(价格) 价格总计
  from table group by CONVERT(varchar(19),价格发布时间,121)

这个按1分钟或者10分钟是可以的,但是按15分钟就不行了吧