MySQL:返回带有 NULL 或 0 Vales 的计数 (*)

标签 mysql sql count null

我有三个表 CustomerSales 和 Icecream。为了便于理解,每次销售中都有一个冰淇淋。

CustomerSales 表包含(CustomerId、PurchaseId、邮政编码、IcecreamID)

Ice_Cream 包含(Ice_Cream 名称,Ice_Cream Id)

我正在尝试编写一个查询,将巧克力冰淇淋的销售额返回到每个邮政编码(邮政编码),但我还想知道哪些邮政编码的销售额为零。目前它只返回有销售的邮政编码。

SELECT C.postcode, COUNT(*) AS TOTAL SALES
FROM CustomerSales C JOIN IceCream I
ON C.icecreamID = I.id AND
WHERE I.name = "Chocolate" AND C.saleyear = "2019"
GROUP BY C.postcode;

这与我想要的很接近,但只包括实现销售的邮政编码。我还想包括 2019 年巧克力冰淇淋销量为 0 的邮政编码。

我该怎么做?我尝试过汇总,但认为我做错了。

我也在想

SELECT C.postcode, COUNT(*) AS TOTAL SALES
FROM CustomerSales C OUTER LEFT JOIN IceCream I
ON C.icecreamID = I.id AND
WHERE I.name = "Chocolate" AND C.saleyear = "2019"
GROUP BY C.postcode;

我认为问题是,计数返回行的值。

最佳答案

计算 PurchaseId,而不是 *,我认为这应该返回预期的结果:

SELECT C.postcode, COUNT(C.PurchaseId) AS TOTAL SALES
FROM CustomerSales C OUTER LEFT JOIN IceCream I
ON C.icecreamID = I.id AND
WHERE I.name = "Chocolate" AND C.saleyear = "2019"
GROUP BY C.postcode;

关于MySQL:返回带有 NULL 或 0 Vales 的计数 (*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58752431/

相关文章:

PHP fatal error 调用未定义方法...我 99% 确定已定义

php - 如何在 foreach 中使用(或组合)多个数组

php - 如果不从一个表中选择,则检查任一表上是否存在数据

sql - Postgresql使用sql将相邻数据平均到新表中

sql - 如何使用SQL计算表中的唯一记录并获取这些唯一记录的数量?

mysql - 对于表中未出现的行,将行计数返回为 0

java - 将国际字符从 MySQL 输出到 Java/Android

sql - postgres - 如何根据两个数组的 AND 填充一个新数组

sql - JOIN 的问题

MYSQL跨表统计匹配结果