簡體   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