如何用SQL实现对数字的求和?

SQL按条件汇总求和

oracle中字段分别求和

上周,一位客户问我如何使用Oracle数据库中的SUM和CASE函数来统计特定字段值的记录数。
让我举个例子。

例如,有一个名为 t 的表,其中有一个名为 zbxpbh 的字段。
我想知道 zbxpbh 中的记录数,例如“3 03 2 ”、“0000”以及该字段中的其他值。
我写了一条SQL语句:
sql 选择 SUM ( CASE Zbxpbh = '3 03 2 ' THEN 1 ELSE 0 END ) AS SUM ; SUM (CASE Zbxpbh = '0000' THEN 1 ELSE 0 END) SUM; SUM(状态 zbxpbh 来自 t
该SQL语句执行后,返回三列:sum、sum、total。
sum 是 zbxpbh 字段值为“3 03 2 ”的记录数,summ 为“0000”,sumc 为非“3 03 2 ”或“0000”的记录数。

这个技巧在数据分析中特别有用,它可以帮助我们更好地理解数据的分布和特征。
此外,您还可以根据需要修改CASE语句中的条件。
例如,如果要统计“3 03 3 ”记录的数量,只需在case语句中添加一个条件即可。

您还可以使用 GROUP BY 语句分配多个字段并为每个组生成统计信息。
例如,如果 t 表中有一个名为 zbxmc 的字段,则可以按 zbxmc 的值进行分组,然后统计每个组中的记录数,其中 zbxpbh 是不同的值。

总之,Oracle数据库中的SUM和CASE函数非常强大,可以帮助您执行各种数据分析任务。
无论如何,这取决于你,这个方法非常有用。
我仍然想知道,这项技术还能用在哪里?