我有一个填充时间戳的专栏
例如。
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。
答案 0 :(得分:3)
在派生表中提取工作日和小时。 GROUP BY
其结果,如:
select d, h, count(*)
from
(
select dayofweek(col1) d, hour(col1) h
from tablename
) dt
group by d, h
注意:由于我不了解MySQL,您可能需要调整每周和每小时的部分...
答案 1 :(得分:0)
select getdate() as Dates into #temp
select datepart(DAY,dates), datepart(hour, dates), count(*) from #temp group by dates
是我如何利用datepart
功能完成的。
答案 2 :(得分:0)
您可以在
组中使用dayofweek和小时的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);