在开发时,我们经常会遇到以“累计(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 是对查询中符合条件的结果(或记录)的个数 例如: 表fruit id name price 1 apple 3.00 2 pear 4.00 select count(price) from fruit; —-执行之后结果为:2 (表示有...
本文将介绍Mysql中的count()与sum()区别,需要的朋友可以参考下
在开发时,我们经常会遇到以“累计(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...
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_...
1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType
Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 ...COUNT (*) FROM GAT_SQMS.GAT_SQMS_BAND_IPTV_VIEW GROUP BY AREA_CODE; 2、使用
代码如下:SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数) FROM ( SELECT COUNT(1) 正确数,0 错误数 FROM TB WHERE STATUS=1 UNION ALL SELECT 0 正确数,COUNT(1) 错误数 FROM TB WHERE ...
核心部分: int count; static double average;... average = sum / count; for (int i = 0; i < count; i++) { if (value[i] > average) { System.out.println("大于平均数的数" + value[i]); } }
1_count_and_say.cpp - super_ugly_number.cpp - Detect_Pattern.cpp - degree_of_array.cpp - 键盘.cpp - 2Sum_Data_Structure_Design.cpp - shuffle_array.cpp - permutations.cpp - kth_missing_number.cpp - 3...
这个需求比较奇怪,要求实现Sum和MagaSum函数,实现以下功能 Sum(1) =>1 Sum(1,2,3) =>6 MegaSum(1)() =>1 MegaSum(1)(2)(3)() =>6 实际上Sum就是Python自建的sum函数,它支持变参,变参怎么实现,自然是*args,...
mysql_num_rows 和 count( * ) 都能统计总数,那个能好一点呢? 或者 分别什么时候用num_rows 和 count( * )呢 一个直观的对比 测试数据: 条数:139764条 数据表... 您可能感兴趣的文章:Mysql中的count()与sum()区别详
C#开发相关技术点。LINQ to SQL语句,Where、Select/Distinct、Count/Sum/Min/Max/Avg、Order By、Group By/Having等。
count存储过程实例:对数据表student_bz中的学生补助金信息进行统计,并将统计结果写入到数据表COUNTCHECK。