首页 > 解决方案 > 当“组”没有记录时显示每日计数为零

问题描述

我每天都按类型对错误进行计数。如果第 2 天没有带有 error2 的记录,我如何让第 2 天显示 error2 为零?

第 1 天

Type   Count
error1   5
error2   6
error3   1

第 2 天

type   Count
error1   6
error3   2

标签: sqlrdbms

解决方案


您从表中选择不同的类型列表,然后将连接返回到该列表。

注意,我假设 type 是您要计算的列。我假设有一个名为 ID 的不同列

SELECT
  BASE_VALUES.TYPE, COUNT(TABLEYOUDIDNOTSAY.ID) AS COUNT
FROM (
   SELECT DISTINCT TYPE FROM TABLEYOUDIDNOTSAY
) AS BASE_VALUES
LEFT JOIN TABLEYOUDIDNOTSAY ON TABLEYOUDIDNOTSAY.TYPE = BASE_VALUES.TYPE
WHERE DAY = 'SOMEDAY'
GROUP BY BASE_VALUES.TYPE

推荐阅读