精华内容
下载资源
问答
  • 在sql中sum是计数函数
    万次阅读
    2020-05-06 16:39:08

    最近在代码中有需要做页面统计数据总数,于是就按照条件规矩的表连接分组查询,先查出总数,然后对分组过后的数据进行单个查询。写完就跑了一下,发现查询速度有点慢(数据暂时还不多),想着以后数据多的话,页面会不会很慢,能不能一个sql,把所有的数量都查出来。这就用到了count()函数内加条件计数,测试了一下,数据正确,sql如下 :

     
    select  a.卫生院顺序号,count(a.ID) as 体检总数,
    count(case when a.是否高血压='是' then 1 else null end)as 高血压总数,
    count(case when a.是否糖尿病='是' then 1 else null end)as 糖尿病总数,
    count(case when a.是否脑卒中='是' then 1 else null end)as 脑卒中总数,
    count(case when a.是否冠心病='是' then 1 else null end)as 冠心病总数
    from  表  a   where YEAR(a.tjrq) = DATEPART(year, GETDATE())  GROUP BY a.机构号

    还有一种方法就是

    SELECT
        COUNT(1) AS '总数',
         COUNT (xjzt = '1' OR NULL) AS '状态1',
         COUNT (xjzt = '2' OR NULL) AS '状态2'
    FROM
        t_table
    WHERE
        sfsc = 0
    GROUP BY
        '字段1',
        '字段2' 

    至于为什么要or null     如count(xjzt= '1' or NULL) 这部分 为什么要加上or NULL 直接count(xjzt= '1' )有什么问题吗?不就是要找xjzt= '1' 的数据吗,为什么要计算NULL的数据

    答案:

    因为 当 xjzt 不是 1时 ,xjzt= '1' 结果false 不是 NULL,

    Count在 值是NULL是 不统计数, (count('任意内容')都会统计出所有记录数,因为count只有在遇见null时不计数,即count(null)==0,因此前者单引号内不管输入什么值都会统计出所有记录数)至于加上or NULL , 很像其他编程里的or运算符,第一个表达式是true就是不执行or后面的表达式,第一个表达式是false 执行or后面的表达式 。当xjzt 不为1时xjzt= '1' or NULL 的结果是NULL,Count才不会统计上这条记录数 

    下面sql语句意思为  按机构分组  查询每个机构中肝功能(肝功能其中包含血清谷丙、谷草、总胆红素,每个项目的超过指标即为异常)和心电图异常人数

     select 组织机构, 
    sum(case when  ((case when xqgb='' then 0  when Cast(xqgb as decimal(10,2))>40 then 1 else 0 end)+(case when xqgc='' then 0 when Cast(xqgc as decimal(10,2))>40 then 1 else 0 end)+(case when zdhs='' then 0 when Cast(zdhs as decimal(10,2))>40 then 1 else 0 end))>0 then 1 else 0 end ) as 肝功能,
    sum(case when 心电图='' or 心电图 is null then 0 when 心电图 like '%1%' then 0 else 1 end) as 心电图
    from  表_健康体检表  group by 组织机构

    更多相关内容
  • 今天小编就为大家分享一篇关于使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • SQL Sum()函数

    万次阅读 2021-05-06 05:25:57
    本教程,我们将演示如何使用SQL SUM函数,此函数计算所有值或不同值的总和。1. SQL SUM函数简介SQL SUM函数是一个聚合函数,它返回所有或不同值的总和。需要注意的是,只能将SUM函数应用于数字列。以下说明了SUM...

    在本教程中,我们将演示如何使用SQL SUM函数,此函数计算所有值或不同值的总和。

    1. SQL SUM函数简介

    SQL SUM函数是一个聚合函数,它返回所有或不同值的总和。需要注意的是,只能将SUM函数应用于数字列。

    以下说明了SUM函数的语法。

    SUM([ALL|DISTINCT] expression)

    ALL运算符用于将聚合应用于所有值。 SUM函数默认使用ALL运算符。

    例如,如果有一组集合值:(1,2,3,3,NULL)。 使用SUM函数将返回9,请注意,SUM函数忽略NULL值。

    要计算唯一值的总和,可以使用DISTINCT运算符,例如,集合(1,2,3,3,NULL)的SUM(DISTINCT)为6。

    2. SQL SUM函数示例

    我们将使用下面的employees表进行演示。

    mysql> DESC employees;

    +---------------+--------------+------+-----+---------+----------------+

    | Field | Type | Null | Key | Default | Extra |

    +---------------+--------------+------+-----+---------+----------------+

    | employee_id | int(11) | NO | PRI | NULL | auto_increment |

    | first_name | varchar(20) | YES | | NULL | |

    | last_name | varchar(25) | NO | | NULL | |

    | email | varchar(100) | NO | | NULL | |

    | phone_number | varchar(20) | YES | | NULL | |

    | hire_date | date | NO | | NULL | |

    | job_id | int(11) | NO | MUL | NULL | |

    | salary | decimal(8,2) | NO | | NULL | |

    | manager_id | int(11) | YES | MUL | NULL | |

    | department_id | int(11) | YES | MUL | NULL | |

    +---------------+--------------+------+-----+---------+----------------+

    10 rows in set

    要获得所有员工的工资总和,我们将SUM函数应用于salary列,如下面的查询:

    SELECT

    SUM(salary)

    FROM

    employees;

    要计算在部门ID为 5 中工作的员工的工资总和,在上面的查询中添加一个WHERE子句,如下所示:

    SELECT

    SUM(salary)

    FROM

    employees

    WHERE

    department_id = 5;

    +-------------+

    | SUM(salary) |

    +-------------+

    | 41200.00 |

    +-------------+

    1 row in set

    2.1. SQL SUM带有GROUP BY子句的示例

    我们经常将SUM函数与GROUP BY子句结合使用来计算分组的总和。

    例如,要计算每个部门的员工工资总和,我们将SUM函数应用于salary列,并按department_id列对行进行分组,如下所示:

    SELECT

    department_id,

    SUM(salary)

    FROM

    employees

    GROUP BY

    department_id;

    执行上面查询语句,得到以下结果:

    bc0003ca24cb437eb9da923c3d98604e.png

    2.2. SQL SUM带有ORDER BY子句的示例

    假设希望将部门工资的总和按降序排序,我们在ORDER BY子句使用SUM函数,如下所示:

    例如,如果要获取工资总和大于3000的部门信息,请使用以下语句:

    SELECT

    e.department_id,

    department_name,

    SUM(salary)

    FROM

    employees e

    INNER JOIN departments d ON d.department_id = e.department_id

    GROUP BY

    e.department_id

    HAVING

    SUM(salary) > 30000

    ORDER BY

    SUM(salary) DESC;

    执行上面查询语句,得到以下结果:

    5ba0f5fe449944bce0ae2c7767528cf1.png

    在本教程中,您学习了如何使用SUM函数计算集合中的值的总和。

    ¥ 我要打赏

    纠错/补充

    收藏

    加QQ群啦,易百教程官方技术学习群

    注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

    展开全文
  • SQL sum函数

    千次阅读 2020-09-25 21:25:59
    SQL sum函数用于统计某一列的和; 原表; 统计paynum列的和; sql对字段可以使用别名,语法是: as xxx;使用别名后如下; 全部运行一下; select * from mempays select SUM(paynum) from mempays...

    SQL sum函数用于统计某一列的和;

    1 SQL Server 中操作

    原表;

    统计paynum列的和;

    sql对字段可以使用别名,语法是: as xxx;使用别名后如下;

    全部运行一下;

     select * from mempays  
      select SUM(paynum) from mempays
      select SUM(paynum) as paynums from mempays

    2 Sqlite 中操作

    S:\sqlite>sqlite3 test1
    SQLite version 3.7.15.2 2013-01-09 11:53:05
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> .tables;
    Error: unknown command or invalid arguments:  "tables;". Enter ".help" for help
    sqlite> .tables
    sqlite> .databases
    seq  name             file

    ---  ---------------  ----------------------------------------------------------

    0    main             S:\sqlite\test1

    sqlite> create table Students(
       ...>   Id int primary key not null,
       ...>   TeacherID int,
       ...>   Name varchar(255),
       ...>   Age int);
    sqlite> insert into Students values (1,4,'小明',10);
    sqlite> insert into Students values (2,5,'小白',12);
    sqlite> insert into Students values (3,4,'小红',11);
    sqlite> insert into Students values (4,5,'小白1',14);
    sqlite> insert into Students values (5,4,'小红1',15);
    sqlite> insert into Students values (6,6,'小明2',10);
    sqlite> insert into Students values (7,6,'小白2',12);
    sqlite> insert into Students values (8,6,'小红2',11);
    sqlite> insert into Students values (9,5,'小白2',14);
    sqlite> insert into Students values (10,4,'小红2',15);
    sqlite> select * from Students
       ...> ;
    1|4|小明|10
    2|5|小白|12
    3|4|小红|11
    4|5|小白1|14
    5|4|小红1|15
    6|6|小明2|10
    7|6|小白2|12
    8|6|小红2|11
    9|5|小白2|14
    10|4|小红2|15
    sqlite> select sum(Age) as ages from Students;
    124
    sqlite>

    3 Access中操作

        使用网上下的一个单独Access工具;

        新建一个表;Access似乎没有 varchar 类型,只有Text类型,默认长度255; ID默认是AutoNumber类型; 

        这工具录入数据也可以的;然后操作一下 sql SUM() 函数;

     

    展开全文
  • 窗口函数是使用 SQL 进行数据查询和分析时经常使用的函数,基本语法为: <窗口函数> over ( partition by <...而聚合函数 max(), min(), sum(), count() 等作为窗口函数使用的时候,需要注意以下事项:

    窗口函数是使用 SQL 进行数据查询和分析时经常使用的函数,基本语法为:

    <窗口函数> over ( partition by <分组的列名> order by <排序的列名>)

    其中窗口函数又分为专用窗口函数聚合函数。

    专用窗口函数包括 row_number(), rank() dense_rank() 等,比较常用,这里不做过多介绍。

    而聚合函数 max(), min(), sum(), count() 等在作为窗口函数使用的时候,需要注意以下事项:

    (1)聚合函数需要指定聚合的列名;

    (2)当聚合函数只用了 partition by,没使用 order by 时,聚合函数计算按照每个分区全部数值计算;

    (3)当聚合函数同时使用 partition by 和 order by 时,聚合函数计算按照逐行叠加。

    以下员工薪水表 Employee,和 sum() 函数为例: 

    Id       CompanySalary
    1       A2341
    2A341
    3A15
    4A13
    5B351
    6B44
    select Id, Company, Salary, Sum(Salary) over(Partition by Company) as AllSalary from Employee 

    这个的结果是:

    Id       CompanySalaryAllSalary
    1       A23412710
    2A3412710
    3A152710
    4A132710
    5B351395
    6B44395

    很明显,这里类似于使用 group by 之后,对每一个分组进行一次 sum 计算,只是同一个分组下每一行都计算了相同的一次。

    select Id, Company, Salary, Sum(Salary) over(Partition by Company, order by Id) as AccSalary from Employee

     这个结果是:

    Id       CompanySalaryAccSalry
    1       A23412341
    2A3412682
    3A152697
    4A132710
    5B351351
    6B44395

    这种计算则是对这一行之前的数据进行聚合计算,这种计算方式很适合用于统计一些累加的数据分析。 

    展开全文
  • SQL学习之sum()函数

    2019-12-13 09:55:50
    目录学习源SQL sum() 函数示例数据基本使用 学习源 简单教程 https://www.twle.cn/l/yufei/sql/sql-basic-func-sum.html 菜鸟教程 ...SQL sum() 函数返回数值列的总数 SELECT SUM(col...
  • T-SQL中的聚合函数        标题查询会经常碰到取某些列的最大值、最小值、平均值等信息,有时候还需计算出究竟查询到多少行数据。这个时候,查询的"统计数据"是用户比较关心...
  • 首先举个栗子(不想看的话直接下面看总结): order_type:订单类型 open_id:用户唯一标识 SELECT  date(create_time) AS '当天...sum函数中使用if判断条件:{ sum( IF (order_type = 0, real_price, 0) ) A...
  • 今天群里有人问了个问题是这样的: 然后有群友是这样回答的 代码如下: select name,sum(case when stype=4 then money*(-1) else money end ) as M from table group by name 我想了想,应该可以用IF函数 于是改了下...
  • SQL 函数

    2020-12-16 16:29:19
    SQL 拥有很多可用于计数和计算的内建函数SQL Aggregate 函数 SQL Aggregate 函数计算从列取得的值,返回一个单一的值。 有用的 Aggregate 函数: AVG() – 返回平均值 COUNT() – 返回行数 FIRST() – 返回...
  • 1.数据库存的是科学计数法,123,2.2 replace(字段,",","") select sum(replace("money",",","")) from user ; 注意:这里查一查为什么sum(123,2.2),sum之后的数据不准确 replace函数是如何运用的 2.@如何运用...
  • SUMSQL语句的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL。但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如下面的方法来处理:...
  • SQL 统计函数

    2022-05-04 20:40:00
    --统计函数: --count总数、max最大、min最小、avg平均、sum求和 格式:select 函数(*) from 表名 --分组查询:group by select 字段 from 表名 group by 字段 --having:分组后的 过滤查询 --where:分组前的 条件...
  • sql查询sum统计加条件

    千次阅读 2020-10-20 15:15:00
    sql查询sum统计加条件 SELECT `hid`,sum(CASE WHEN channel != '头条' AND channel !='美团' THEN dialog ELSE 0 END) as dialog FROM `yy_biao` WHERE ( `start_time` >= '2020-10-01 00:00:00' AND `end_time`...
  • 问题点:在sum对window函数执行时,如果有重复数据,会直接把相同的数据相加,并不是逐步相加。 问题描述 数据:一个成绩表,有三个个字段:学生s_id,课程c_id,成绩s_score。 查询条件查询每个课程的学生成绩...
  • T-SQL中的聚合函数 1.SUM() 函数 SUM() 函数返回表达式所有数值的总和,空值将被忽略。SUM() 函数只能用于数字类型的列,不能够汇总字符,日期等其他数据类型。例如,查询学生编号为S2102001的考试总分,可以使用...
  • SQL中SUM()和COUNT()的使用

    千次阅读 2021-05-23 12:48:08
    SQL中SUM()和COUNT()的使用 常用于: count() -- 返回某列的行数 sum() -- 返回某列值之和 -- 统计emp表薪资大于3000的员工人数 select count(*) from emp where sal>3000; -- 统计emp表所有员工的总薪资(不...
  • Oracle数据库SQL中经常使用sum函数和case when条件判断case when是可以加多个条件的name 多条件时要注意 then的条件直观代码举例partake_Num 要求和的字段COR_STATUS 需要判断的字段需要计算 COR_STATUS =1 的时候...
  • SQL常用汇总函数用法说明

    千次阅读 2021-03-21 08:59:07
    1.汇总分析汇总函数(1)count(列名):求某列的行数,不包含空值。(2)sum(列名):对某列数据进行求和,只能对数值...注意:(1)如果计算全部的行数会包含空值null.(2)如果汇总时不想计算重复值,汇总函数前加distinc...
  • sql sum的使用

    千次阅读 2019-06-04 22:19:51
    select *,SUM(learned_count) as sumcount from yshx_organization_learned_count WHERE month =5 and year = 2019 group by organization_id order by id desc 参考博客https://blog.csdn.net/love_java_cc...
  • 在sql语句我们经常用到统计数据,sum()用于求和,count()用于行数的统计sum()列值为空时不计算,count()为空时认为没有这一行。 sum()为空时返回结果为null SELECT COUNT(id) FROM dgztc.user where id=""; ...
  • 朋友们,个人公众号:SQL数据库运维 移动端的学习分享,各种数据库基础知识,一起进步,共同学习,期待你的加入。 函数的类型 1、聚合函数:对一组值执行计算,并返回单个值,也被称为组函数。聚合函数经常与 ...
  • select sum(guarantee_left_amount) as '保金额'from test_gurantee where business_status='ok' 由于业务需求,还要统计其他列,一次性返回,不能这样写 结果: SELECT sum( case when business_status='ok' ...
  • sql sum语句_SQL Sum语句示例说明

    千次阅读 2020-08-13 15:21:17
    sql sum语句 SQL中Sum语句是什么? (What is the Sum statement in SQL?) This is one of the aggregate functions (as is count, average, max, min, etc.). They are used in a GROUP BY clause as it ...
  • 慕前端1316121、sql中sum和count的区别 ----sql聚合函数(1)首先,sum是对一个字段求和,hive字段的类型一般是string或者是int,如果是int当然没有问题,如果是string类型但是全部是数字也没有问题,但是如果string...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,936
精华内容 35,174
热门标签
关键字:

在sql中sum是计数函数