sql - 如何在sql中获取计数为0的列
问题描述
我正在尝试查找每家石油公司的销售数量。但是,我也想包括没有销售但我不知道该怎么做的石油公司。该stations
表包括所有电台,但sales
仅包括实际有任何销售的电台。
这就是我如何找到每个加油站的销售数量,但这不包括销售额为 0 的公司:
select stations.company,count(sales.sale)
from stations
join sales on stations.id=sales.stationid
group by stations.company;
我的想法是与另一个查询创建一个联合,该查询仅找到销售额为 0 的公司,但我不知道如何获取其中值为 0 的列。我尝试添加having count(sales.sale) = 0
,但由于没有销售的电台不会出现在不起作用的销售表中。
我查看了类似的堆栈溢出问题,但它们似乎都使用不同类型的连接进行引用,但是我尝试使用左/右外/内连接但没有运气。
解决方案
您没有提供最小的可重现示例,所以我不能完全确定,但似乎需要 LEFT JOIN。试试下面的查询:
SELECT stations.company, count(sales.sale) AS TotalSales
FROM stations
LEFT JOIN sales ON stations.id=sales.stationid
GROUP BY stations.company
推荐阅读
- java - Java createNativeQuery:如何将参数设置为选项?
- angular - 如何使用 Angular 在 amCharts 中创建图例?
- command-line - 用脚本逐元素减去原始浮点文件?
- flutter - 如何将对象映射到轮播滑块项目?
- r - 从函数中因子的每个级别提取数据
- excel - 在不激活工作簿的情况下删除 Excel VBA 中的行
- java - 在 Android 上实现一个始终运行的 Redis 客户端
- python - Pandas 中的嵌套分组
- python - 查找信用卡验证的奇数和偶数
- database - 如何使用本机反应将数据存储在本地存储中?