抱歉,标题很乱,但这是我的问题描述。
| id|dateKey|colA|colB|colD|colE|
+---+-------+----+----+----+----+
| 1 |180111 | 1 | 5 |Null|Null|
| 2 |180111 |Null|Null| 6 | 7 |
| 3 |180111 | 2 | 5 | 3 | 2 |
我有上面的表格数据,但我希望当按日期聚合数据(例如总和)时结果显示如下:
|dateKey|colA|colB|colD|colE|
+-------+----+----+----+----+
|180111 | 3 | 10 |9 |9 |
当我努力实现这一目标时,有办法做到这一点吗?
注意:此查询将在带有日期过滤器的 10 GB 数据上运行。
最佳答案
使用 SUM
的简单 GROUP BY
查询应该已经满足您的需求:
SELECT
dateKey,
SUM(colA) AS colA,
SUM(colB) AS colB,
SUM(colD) AS colD,
SUM(colE) AS colE
FROM yourTable
GROUP BY dateKey;
这应该起作用的原因是 SUM
默认情况下会忽略 NULL
值,因此只有存在的数字才会出现在总和中。
关于sql - 如何按日期查询结果调整 SQL 聚合以合并同一级别中某些列存在空值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54016777/