繁体   English   中英

在SQL中按星期几和一天中的小时分组

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM