SQL SUM(IF)与COUNT(IF)的区别
发布网友
发布时间:2024-10-22 07:50
我来回答
共1个回答
热心网友
时间:2024-11-08 10:25
在探讨`SUM`与`COUNT`函数结合使用前,先了解`SUM`与`COUNT`的区别。
例如,要计算进货单价总和,公式为:2800 + 2800 + 5000 + 790,显示进货单价总和为11390。若要计算`purchas_price`列中非空行的数量,公式为:4行。
新增一行,`purchase_price`为0,`SUM(purchase_price)`仍为11390,`COUNT(purchase_price)`变为5,说明新增一条记录。
以学生考试为例,总人数为50,实际参加考试者为49人,未参加者成绩为0。`COUNT(成绩)`为49,表明所有参加考试的学生被计入统计。
分析`SUM(IF)`与`COUNT(IF)`差异。假设表`page_view`记录不同页面在每日的访问情况,`time`只到天。要统计每个页面每日访问次数,公式如下。
首先按`time`分组,针对每个页面计算`IF(page_name='A',1,0)`的总和。以此类推,得到10月1日,A页面访问3次,B页面2次,C页面2次。
若用`COUNT`计算,错误写法为:`COUNT(IF(page_name='A',1,0))`。结果显示所有页面统计次数相同,以10月1日为例,次数为7。这是因`COUNT`处理了0值,误将0视作非空。
修正写法为:`COUNT(IF(page_name='A',1,NULL))`。对比显示与`SUM`结果一致。
总结,`SUM`与`COUNT`函数区分明显,难点在于`COUNT`对NULL值的处理。`SUM`与`COUNT`在应用上各有侧重,理解两者区别有助于数据统计分析。