在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询。比如aaa表:
ID,NAME,SHU
1, a, 3
2, a, 4
3, b, 5
4, b, 7
5, a,
6, a, 20
例1:查询出现过2次的name。
往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制。
错误做法:select * from aaa where count(name)>=2 group by name;
正确做法:select * from aaa group by name HAVING count(name)>=2 ;
解释说明:HAVING 与 WHERE 类似,可用来决定选择哪些记录。HAVING 子句在SELECT语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句分组的任何符合 HAVING 子句的记录。
例2:查询单一用户的SHU总和大于10的用户。
有前面的经验,把sum()方法写在HAVING子句中。
正确做法:select * from aaa group by name HAVING sum(SHU)>10 ;
注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用AND和OR分割。
例3:sum 与count 的区别
select name, count(shu), sum(shu)
from aaa
group by name
结果为:a 3 27
b 2 12
可见:oracle 数据库中对空值的事不同的,count 函数认为没有此项,而sum函数不计算。
结论: 求和用累加 sum ,求行的个数用累计 count
来源:http://blog.sina.com.cn/s/blog_7ed5a8080100wmlt.html#bsh-73-269906757
相关推荐
总结一下,SUM和COUNT函数在SQL中的主要区别在于: 1. SUM函数用于数值列的求和,而COUNT函数用于统计记录数量。 2. SUM函数会忽略非数字值和NULL值,而COUNT函数会统计所有非NULL记录,或者指定列中的非NULL值。 3....
在MySQL数据库中,`COUNT()` 和 `SUM()` 都是聚合函数,用于处理一组数据并返回单个值。然而,它们的功能和应用场景有着明显的区别。 `COUNT()` 函数主要用于统计指定列中有值的行数。当`COUNT()`的参数是一个列名...
在SQL查询中,`COUNT()` 和 `SUM()` 函数是非常重要的聚合函数,它们用于统计行数和计算特定列的总和。在处理大数据时,尤其是分析数据或进行报告时,这些函数经常作为查询条件来筛选满足特定条件的记录。本文将通过...
sum(real_price) AS '当天总收入', sum函数中使用if判断条件:{ sum( IF (order_type = 0, real_price, 0) ) AS '当天支付收入', sum( IF (order_type = 1, real_price, 0) ) AS '当天打赏收入', } count(DISTINCT...
`CASE WHEN` 提供了灵活的条件判断机制,而 `SUM CASE WHEN` 则使得对数据进行条件性聚合变得更加简单。结合字符串拼接功能,这些技术可以帮助我们在复杂的数据处理任务中更加高效地完成工作。在实际应用中,根据...
此外,Excel还提供了许多其他与之相关的函数,如COUNT函数用于计算非空单元格的数量,MAX和MIN函数用于找出最大和最小值,以及STDEV函数用于计算标准差,这些都与SUM和AVERAGE一起,构成了数据分析的基础工具箱。...
SQL SUM() 函数 SUM() 函数 SUM() 函数返回数值列的总数。 SQL SUM() 语法 SELECT SUM(column_name) FROM table_name; ...| aid | site_id | count | date | +-----+---------+-------+----------
const count=10,sum=81.5,char1=‘f’,max=169,str1=“h*54 2..4S!AAsj”, char2=‘@’,str2=“aa!+h”; 输出: count(integer,10) sum(float,81.5) char1(char, ‘f’) max(integer,169) str1(string,“h*54 2..4S...
包含信息:MEMBER_NO FFP_DATE FIRST_FLIGHT_DATE GENDER FFP_TIER WORK_CITY WORK_PROVINCE WORK_COUNTRY AGE LOAD_TIME FLIGHT_COUNT BP_SUM EP_SUM_YR_1 EP_SUM_YR_2 SUM_YR_1 SUM_YR_2 SEG_KM_SUM WEIGHTED_SEG_...
本例中,我们使用子查询来计算符合条件的学生人数(`COUNT(*)`)以及总补助金额(`SUM(je)`): ```sql SELECT COUNT(*) FROM rs_pkbzrs WHERE rs.nj = curdn_res.item1 AND rs.dj = curdn_res.item2 ``` #### 5. 循环...
COUNT(*) FROM GAT_SQMS.GAT_SQMS_BAND_IPTV_VIEW GROUP BY AREA_CODE; ``` 在这个查询中,SUM函数与CASE WHEN一起使用,如果`IPTV_NBR`或`ACC_NBR`为空或等于空字符串,那么对应的CASE WHEN表达式结果为0,否则为...
fping-exporter 允许您使用 fping 和 prometheus 运行测量网络延迟。与 blackbox-exporter 相比,它还为...fping_rtt_sum:测量延迟的总和 fping_rtt:测量延迟的摘要 更多详情、使用方法,请下载后阅读README.md文件
常见的分析函数包括`SUM()`, `COUNT()`, `AVG()`, `MIN()`, `MAX()`等,它们通常与`OVER`子句一起使用来定义计算范围。 ### SUM() OVER 的不同用法 #### 按部门“连续”求总和 ```sql SUM(sal) OVER (PARTITION BY...
* 三个区域中>=60:=SUM(COUNTIF(INDIRECT({"a46:a48","b48:b50","c47:c48"}),">=60")) 补充: * 集合运算法:统计范围,如 5,可以分解为 (x>=5)-(x>7) 写为函数:=countif(range,">=5")-countif(range,">7") * ...
除了 `sum`,tp5 还提供了其他几种统计方法,包括 `count`, `max`, `min` 和 `avg`: - `count`: 统计记录数量,如 `Db::table('think_user')->count();` 可以获取用户总数。 - `max`: 获取指定字段的最大值,如 `...