繁体   English   中英

如何在MySQL工作日分组总和?

[英]How to group sums by weekday in MySQL?

我有这样一张桌子:

id | timestamp  | type  
-----------------------
1    2010-11-20   A
2    2010-11-20   A
3    2010-11-20   B
4    2010-11-21   A
5    2010-11-21   C
6    2010-11-27   B

我需要计算每种类型的行数,按工作日分组; 像这样:

weekday |  A  |  B  |  C 
--------------------------
5          2     2     0    -- the B column equals 2 because nov 20 and nov 27 are saturday
6          1     0     1

对此最简单的解决方案是什么?
我不介意使用视图,变量,子查询等。

使用:

  SELECT WEEKDAY(t.timestamp) AS weekday,
         SUM(CASE WHEN t.type = 'A' THEN 1 ELSE 0 END) AS a,
         SUM(CASE WHEN t.type = 'B' THEN 1 ELSE 0 END) AS b,
         SUM(CASE WHEN t.type = 'C' THEN 1 ELSE 0 END) AS c
    FROM YOUR_TABLE t
GROUP BY WEEKDAY(t.timestamp)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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