如何按SUM条件删除记录:剔除合计为0的NUMBER_ID记录
问题描述
现有数据表:
| NUMBER_ID | TOTAL |
|---|---|
| 1 | -5000 |
| 1 | 5000 |
| 2 | 1000 |
| 2 | -1000 |
| 3 | 3000 |
| 4 | -3000 |
| 4 | 2000 |
期望结果:
| NUMBER_ID | TOTAL |
|---|---|
| 3 | 3000 |
| 4 | -1000 |
需求:对相同NUMBER_ID的TOTAL字段求和,总和为0则移除该ID的所有记录,总和不为0则保留合计结果。
解决方案
使用分组聚合加过滤的SQL语句即可实现:
SELECT NUMBER_ID, SUM(TOTAL) AS TOTAL FROM your_table_name GROUP BY NUMBER_ID HAVING SUM(TOTAL) <> 0;
说明
GROUP BY NUMBER_ID:将相同NUMBER_ID的记录归为一组SUM(TOTAL) AS TOTAL:计算每组TOTAL的总和,并重命名为TOTALHAVING SUM(TOTAL) <> 0:过滤掉总和为0的分组,仅保留总和非0的分组结果
内容的提问来源于stack exchange,提问作者JenJenFenFen
相关产品推荐
相关产品推荐

