mySQL - DISTINCT值的SELECT SUM,包括零

时间:2016-09-24 09:36:34

标签: mysql

我有一个包含datetime,errorCode和整数值的表(带有此错误代码的产品计数...)。

我需要SELECT并按周(时间)分组所有不同的errorCodes,其中包含整数和0。所以在每个星期都必须是所有不同的errorCodes。

表格如下所示:

2016-09-12, 0, 100
2016-09-12, 0, 10
2016-09-12, e1, 10
2016-09-21, e2, 5

结果我想要的是:

week, errorCode, sum
37,  0, 110
37, e1, 10
37, e2, 0
38, 0, 0
38, e1, 0
38, e2, 5

感谢。

1 个答案:

答案 0 :(得分:0)

在基本级别上,这将显示至少有一个错误类型的所有周的错误总和,包括总和为0的错误。这一周的另一个缺点是,周数是与年份相关的序数,即0-51。如果您需要这些工作多年和/或包括所有周,那么您可能需要从日历开车并离开加入此查询:

SELECT week(week), e.errorCode, sum(case when e.errorCode=x.errorCode then c else 0 end) from
errorCodes e, xtest x
group by week(week), e.errorCode