sql - 在 SQL Server 中执行 Count 和 GroupBy 时如何保持 0 值条目?
问题描述
我已经尝试过isnull
,但如果该箱中的计数为 0,它仍然会遗漏某些数据箱。我正在使用 group by 来计算每个组中的观察次数。对于具有 0 个观察值的组,SQL 不会为该组打印一行。我想要该组的一行和相应的 0 值。
我试过这个:在 mysql 中使用 GROUP BY 和 SUM 保持零值
谢谢!
用数据编辑:
Vector = [1, 2, 2, 3, 4, 5, 5, 9, 10, 10]
我想计算上面落入垃圾箱的观察次数:
[1-2, 3-4, 5-6, 7-8, 9-10]
结果应该是
[3,2,2,0,3]
但是我得到
[3,2,2,3]
解决方案
您可以创建“bin”派生表并对其进行 LEFT JOIN:
SELECT bin.a, bin.b, COUNT(v.val) AS cnt
FROM (VALUES (1,2),(3,4),(5,6),(7,8),(9,10)) bin(a,b)
LEFT JOIN vector v
ON v.val BETWEEN bin.a AND bin.b
GROUP BY bin.a, bin.b
ORDER BY bin.a, bin.b;
输出:
+----+-----+-----+
| a | b | cnt |
+----+-----+-----+
| 1 | 2 | 3 |
| 3 | 4 | 2 |
| 5 | 6 | 2 |
| 7 | 8 | 0 |
| 9 | 10 | 3 |
+----+-----+-----+
推荐阅读
- typescript - 在调用我的函数之前,我的 ionic 4 应用程序上的 html 正在显示
- ios - 添加到 UITableViewCell 内容视图时如何调用 UITableview 数据源(cellForRowAt)?
- node.js - 为什么 bin/www 文件在 express-generator 中没有扩展名?
- jboss - Jboss 中的线程池配置
- django - 如何修复“CustomUser”对象没有“get”属性
- python - 如何创建适用于 Python 中的类的多值函数?
- excel - VBA 中使用 NAMED RANGES 的 SUM 函数只显示错误
- javascript - 如何将 react window.onError 错误记录到文件中
- nginx - Nginx 提供可下载的 S3 文件
- javascript - 检查对象中是否存在值