[英]Group by day of week and hour of day in SQL
我有一列充滿了時間戳記
例如。
col1
2017-01-01 10:30:00
2017-01-02 08:10:00
...
我想按星期幾分組,然后按小時進一步分組。
輸出看起來像
day hour count
1 1 5
2 12
2 1 10
5 3
...
如何在SQL中實現呢? 我正在使用MySQL。
在派生表中提取工作日和小時。 GROUP BY
其結果,類似:
select d, h, count(*)
from
(
select dayofweek(col1) d, hour(col1) h
from tablename
) dt
group by d, h
注意:由於我不了解MySQL,因此您可能需要調整星期幾和小時部分...
select getdate() as Dates into #temp
select datepart(DAY,dates), datepart(hour, dates), count(*) from #temp group by dates
我是如何利用datepart
函數做到的。
您可以分組使用Dayofweek和hour的mysql函數
在mysql中:
CREATE TABLE IF NOT EXISTS test (
col TIMESTAMP
) ;
INSERT INTO test (col) VALUES
(TIMESTAMPADD(HOUR, 7, TIMESTAMPADD(DAY, 1, CURDATE()))),
(TIMESTAMPADD(HOUR, 6, TIMESTAMPADD(DAY, 2, CURDATE()))),
(TIMESTAMPADD(HOUR, 7, TIMESTAMPADD(DAY, 3, CURDATE()))),
(TIMESTAMPADD(HOUR, 7, TIMESTAMPADD(DAY, 10, CURDATE()))),
(TIMESTAMPADD(HOUR, 7, TIMESTAMPADD(DAY, 1, CURDATE()))),
(TIMESTAMPADD(HOUR, 6, TIMESTAMPADD(DAY, 2, CURDATE())))
;
SELECT dayofweek (col), hour(col), count(*)
FROM test GROUP BY dayofweek(col), hour(col);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.