[英]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.