亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一個時間范圍內分組為5分鐘的間隔

在一個時間范圍內分組為5分鐘的間隔

米脂 2019-08-01 16:20:34
在一個時間范圍內分組為5分鐘的間隔我想要做的mySQL命令有些困難。SELECT a.timestamp, name, count(b.name) FROM time a, id b WHERE a.user = b.user  AND a.id = b.id  AND b.name = 'John'  AND a.timestamp BETWEEN '2010-11-16 10:30:00' AND '2010-11-16 11:00:00' GROUP BY a.timestamp這是我目前的輸出聲明。timestamp            name  count(b.name)-------------------  ----  -------------2010-11-16 10:32:22  John  22010-11-16 10:35:12  John  72010-11-16 10:36:34  John  12010-11-16 10:37:45  John  22010-11-16 10:48:26  John  82010-11-16 10:55:00  John  92010-11-16 10:58:08  John  2如何將它們分組為5分鐘的間隔結果?我希望我的輸出像timestamp            name  count(b.name)-------------------  ----  -------------2010-11-16 10:30:00  John  22010-11-16 10:35:00  John  102010-11-16 10:40:00  John  02010-11-16 10:45:00  John  82010-11-16 10:50:00  John  02010-11-16 10:55:00  John  11 
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

這適用于每個間隔。

PostgreSQL的

SELECT
    TIMESTAMP WITH TIME ZONE 'epoch' +
    INTERVAL '1 second' * round(extract('epoch' from timestamp) / 300) * 300 as timestamp,
    name,
    count(b.name)FROM time a, id WHERE …GROUP BY round(extract('epoch' from timestamp) / 300), name


MySQL的

SELECT
    timestamp,  -- not sure about that
    name,
    count(b.name)FROM time a, id WHERE …GROUP BY UNIX_TIMESTAMP(timestamp) DIV 300, name


查看完整回答
反對 回復 2019-08-01
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

您應該使用GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 300而不是round(../ 300),因為舍入我發現一些記錄被計入兩個分組結果集。


查看完整回答
反對 回復 2019-08-01
  • 3 回答
  • 0 關注
  • 698 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號