`

sum count的区别

 
阅读更多

在开发时,我们经常会遇到以“累计(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

 

分享到:
评论

相关推荐

    SQL语句中SUM与COUNT的区别深入分析

    SUM是对符合条件的记录的数值列求和 COUNT 是对查询中符合条件的结果(或记录)的个数 例如: 表fruit id name price 1 apple 3.00 2 pear 4.00 select count(price) from fruit; —-执行之后结果为:2 (表示有...

    Mysql中的count()与sum()区别详细介绍

    本文将介绍Mysql中的count()与sum()区别,需要的朋友可以参考下

    sql中count或sum为条件的查询示例(sql查询count)

    在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询,下面使用一个示例说明使用方法

    使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解

    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() 函数

    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...

    air_data.csv

    包含信息: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_...

    case when和sum case when 写法及拼接字段

    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用法讲解

    Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 ...COUNT (*) FROM GAT_SQMS.GAT_SQMS_BAND_IPTV_VIEW GROUP BY AREA_CODE; 2、使用

    SQL一条语句统计记录总数及各状态数

    代码如下: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 ...

    java求平均数和大于平均数的数

    核心部分: int count; static double average;... average = sum / count; for (int i = 0; i < count; i++) { if (value[i] > average) { System.out.println("大于平均数的数" + value[i]); } }

    2sumleetcode-LeetCode:力码

    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...

    对Python实现累加函数的方法详解

    这个需求比较奇怪,要求实现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 VS COUNT 效率问题分析

    mysql_num_rows 和 count( * ) 都能统计总数,那个能好一点呢? 或者 分别什么时候用num_rows 和 count( * )呢 一个直观的对比 测试数据: 条数:139764条 数据表... 您可能感兴趣的文章:Mysql中的count()与sum()区别详

    LINQ_to_SQL.zip_SUM_linq

    C#开发相关技术点。LINQ to SQL语句,Where、Select/Distinct、Count/Sum/Min/Max/Avg、Order By、Group By/Having等。

    count存储过程

    count存储过程实例:对数据表student_bz中的学生补助金信息进行统计,并将统计结果写入到数据表COUNTCHECK。

Global site tag (gtag.js) - Google Analytics