`

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函数在SQL中的主要区别在于: 1. SUM函数用于数值列的求和,而COUNT函数用于统计记录数量。 2. SUM函数会忽略非数字值和NULL值,而COUNT函数会统计所有非NULL记录,或者指定列中的非NULL值。 3....

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

    在MySQL数据库中,`COUNT()` 和 `SUM()` 都是聚合函数,用于处理一组数据并返回单个值。然而,它们的功能和应用场景有着明显的区别。 `COUNT()` 函数主要用于统计指定列中有值的行数。当`COUNT()`的参数是一个列名...

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

    在SQL查询中,`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...

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

    `CASE WHEN` 提供了灵活的条件判断机制,而 `SUM CASE WHEN` 则使得对数据进行条件性聚合变得更加简单。结合字符串拼接功能,这些技术可以帮助我们在复杂的数据处理任务中更加高效地完成工作。在实际应用中,根据...

    SUM_AVG.rar_SUM

    此外,Excel还提供了许多其他与之相关的函数,如COUNT函数用于计算非空单元格的数量,MAX和MIN函数用于找出最大和最小值,以及STDEV函数用于计算标准差,这些都与SUM和AVERAGE一起,构成了数据分析的基础工具箱。...

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

    count存储过程

    本例中,我们使用子查询来计算符合条件的学生人数(`COUNT(*)`)以及总补助金额(`SUM(je)`): ```sql SELECT COUNT(*) FROM rs_pkbzrs WHERE rs.nj = curdn_res.item1 AND rs.dj = curdn_res.item2 ``` #### 5. 循环...

    Oracle中的SUM用法讲解

    COUNT(*) FROM GAT_SQMS.GAT_SQMS_BAND_IPTV_VIEW GROUP BY AREA_CODE; ``` 在这个查询中,SUM函数与CASE WHEN一起使用,如果`IPTV_NBR`或`ACC_NBR`为空或等于空字符串,那么对应的CASE WHEN表达式结果为0,否则为...

    prometheus exporter测量网络延迟_Go语言_代码_相关文件_下载

    fping-exporter 允许您使用 fping 和 prometheus 运行测量网络延迟。与 blackbox-exporter 相比,它还为...fping_rtt_sum:测量延迟的总和 fping_rtt:测量延迟的摘要 更多详情、使用方法,请下载后阅读README.md文件

    ORACLE分析函数

    常见的分析函数包括`SUM()`, `COUNT()`, `AVG()`, `MIN()`, `MAX()`等,它们通常与`OVER`子句一起使用来定义计算范围。 ### SUM() OVER 的不同用法 #### 按部门“连续”求总和 ```sql SUM(sal) OVER (PARTITION BY...

    Excel中的COUNT计数函数[收集].pdf

    * 三个区域中>=60:=SUM(COUNTIF(INDIRECT({"a46:a48","b48:b50","c47:c48"}),">=60")) 补充: * 集合运算法:统计范围,如 5,可以分解为 (x>=5)-(x>7) 写为函数:=countif(range,">=5")-countif(range,">7") * ...

    tp5 sum某个字段相加得到总数的例子

    除了 `sum`,tp5 还提供了其他几种统计方法,包括 `count`, `max`, `min` 和 `avg`: - `count`: 统计记录数量,如 `Db::table('think_user')->count();` 可以获取用户总数。 - `max`: 获取指定字段的最大值,如 `...

Global site tag (gtag.js) - Google Analytics