国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

后端開發(fā) - mysql按時(shí)間分段統(tǒng)計(jì)的sql語句怎么寫好?
黃舟
黃舟 2017-05-25 15:08:22
0
3
1150

我的數(shù)據(jù)庫表結(jié)構(gòu)如下:

字段分別是ID,NUM1,NUM2, TIME1,TIME2, MONEY.

想要按照15分鐘為間隔來統(tǒng)計(jì)ID的數(shù)量。效果如同下面的sql語句。

SELECT  
  sum(CASE when TIME1 >= '2014-02-27 8:00:00' and TIME1 < '2014-02-27 8:15:00' then 1 else 0 end)   AS '1',  
  sum(CASE when TIME1 >= '2014-02-27 8:15:00' AND TIME1 < '2014-02-27 8:30:00' then 1 else 0 end)   AS '2',  
  sum(CASE when TIME1 >= '2014-02-27 8:30:00' AND TIME1 < '2014-02-27 8:45:00' then 1 else 0 end)   AS '3',  
  sum(CASE when TIME1 >= '2014-02-27 8:45:00' AND TIME1 < '2014-02-27 9:00:00' then 1 else 0 end)   AS '4',  
  sum(CASE when TIME1 >= '2014-02-27 9:00:00' and TIME1 < '2014-02-27 9:15:00' then 1 else 0 end)   AS '5'  
from dealdata;

但是像上面那么寫重復(fù)代碼多,并且如果我改成30分鐘的話,就要改動(dòng)很多,所以求助sql大神,看有什么好的方法。

———————————————————————————————————分割線————————————————————————————————————

謝謝 arm 同志的幫助,現(xiàn)在能查詢出現(xiàn)了

count(id)就是進(jìn)站的人
但是有的時(shí)間段,根本沒有進(jìn)站的人,所以有的時(shí)間段沒有,例如5:00 -- 5:15
如果要將沒有進(jìn)站的人的時(shí)間段 補(bǔ)全為0,該怎么做呢?

黃舟
黃舟

人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!

全部回復(fù)(3)
我想大聲告訴你

謝邀,可以縱向排列的化,如下

SELECT count(id)
from dealdata
where timestampdiff(minute,'2014-02-27 9:15:00',`TIME1`)<0 and timestampdiff(minute,'2014-02-27 8:00:00',`TIME1`)>=0
group by floor(timestampdiff(minute,'2014-02-27 8:00:00',`TIME1`)/15)

where 限制時(shí)間段,group by里面除以你需要的時(shí)間間隔。
我不知道你為什么出錯(cuò),可能和mysql版本有關(guān),我是mysql5.6

SELECT count(*),
floor(timestampdiff(minute,'2017-1-18 16:00:00',`time`)/30),
date_add('2017-1-18 16:00:00',interval 30*floor(timestampdiff(minute,'2017-1-18 16:00:00',`time`)/30) MINUTE)
FROM 我是馬賽克.我是馬賽克
group by floor(timestampdiff(minute,'2017-1-18 16:00:00',`time`)/30)

結(jié)果

看了下,跑的還是蠻快的,0.3s不到

伊謝爾倫

列數(shù)不定啊,真的定義不少變量

曾經(jīng)蠟筆沒有小新

腳本驅(qū)動(dòng)MySQL ,定制一個(gè)變量。也許有更好的辦法,我就閑的回答了下

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板