聚合函数count里面加条件

聚合函数中如果想汇总某一类数据,可以在括号中增加条件:

sum(case when 字段>0 then 1 else 0 end) as 字段

*注意:count(case when 字段>0 then 1 else 0 end) as 字段

count函数不管记录内容是0或1,它的作用只是计算记录数,如果你要计算次数,用sum(case when 字段>0 then 1 else 0 end) as 字段, 因为你前面计算出来的是0和1的全部次数

或者你用 count(case when 字段>0 then 1 else null end) as 字段这种写法

/******************************************************************************/

SQL中提供的聚合函数可以用来统计、求和、求最值等等。

分类:

–COUNT:统计行数量

–SUM:获取单个列的合计值

–AVG:计算某个列的平均值

–MAX:计算列的最大值

–MIN:计算列的最小值

SQL的执行顺序:

–第一步:执行FROM

–第二步:WHERE条件过滤

–第三步:GROUP BY分组

–第四步:执行SELECT投影列

–第五步:HAVING条件过滤

–第六步:执行ORDER BY 排序

原文地址:https://www.cnblogs.com/kuangwong/p/10540636.html

时间: 2024-11-05 21:40:33

聚合函数count里面加条件的相关文章

oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法

oracle中的聚合函数count.max.min.sum.avg以及NVL函数的用法 分组函数聚合函数对一组行中的某个列执行计算执行计算并返回单一的值.聚合函数忽略空值.聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用,所以有的时候也把其称之为分组函数.这类函数通常应用于报表统计中,以下展示Oracle常用的聚合函数的应用. 分组函数的介绍 作用于一组数据,并对一组数据返回一个值. 常见的分组函数有: Count 用来计算有效数据的数量 Min 返回一个数字列或计算列的最小

T-SQL 聚合函数Count与NULL

大家都知道聚合函数是做统计用的,而count函数是统计行数的,也就是满足一定条件记录的行数. 下面我们来看下这个count与NULL的微妙关系. CREATE TABLE dbo.Student ( Sno int null ,Name nvarchar(23) ) INSERT INTO dbo.Student(Sno,Name)VALUES(1,'Jesse'); INSERT INTO dbo.Student(Sno,Name)VALUES(2,'Jessca'); INSERT INTO

Mongodb中数据聚合之基本聚合函数count、distinct、group

在之前的文章<Mongodb中数据聚合之MapReduce>中,我们提到过Mongodb中进行数据聚合操作的一种方式--MapReduce,但是在大多数日常使用过程中,我们并不需要使用MapReduce来进行操作,不然有点杀鸡用牛刀的感觉,在这边文章中,我们就简单说说用自带的聚合函数进行数据聚合操作的实现. Mongodb中自带的基本聚合函数有三种:count.distinct和group.下面我们分别来讲述一下这三个基本聚合函数. (1)count 作用:简单统计集合中符合某种条件的文档数量

聚合函数&amp;count&amp;sum&amp;avg&amp;max&amp;min

聚合函数的最大特点是根据一组数据求出一个值.聚合函数的结果值只根据选定行中非NULL的值进行计算,NULL值被忽略. count:对于除"*"以外的任何参数,返回所选择集合中非NULL值的行的数目:对于参数"*",返回选择集合中所有行的数目,包含NULL值的行.举例:SELECT count(*) FROM tb_login; sum:求出表中某个字段取值的总和.举例:row12NULL3 SELECT SUM(row) FROM tb_book; //结果为6 剩

mongo聚合函数count问题

在使用一个时间字段做范围查询count()行数时,发现一个问题: 集合总doc数: mongo>db.log.find().count();90370113 查询小于ISODate("2016-10-10T08:00:00.358Z")的doc有多少条: mongo>db.log.find({"startTime":{$lt:ISODate("2016-10-10T08:00:00.358Z")}}).count();31031319

SQL Server数据库--》top关键字,order by排序,distinct去除重复记录,sql聚合函数,模糊查询,通配符,空值处理。。。。

top关键字:写在select后面 字段的前面 比如你要显示查询的前5条记录,如下所示: select top 5 * from Student 一般情况下,top是和order by连用的 order by用在表名的后面 order by后面就填你要按它排序的字段,是升序排序(从小到大排序) percent:百分比 %=percent 比如要显示5%的数据处理,不能写top 5%,而是top 5 percent 提示:如果top 5 percent出来的数是3.1条数据的话,是取四条数据,而不

1009,数据库查询,聚合函数,日期时间函数

SELECT 语句的逻辑处理顺序     between——在多少数和多少数之间 from on join where      ——筛选条件 ( 比较运算符,< > <= >= != ) ( 逻辑运算符, ang   or ) group by   ——对语句进行分组 with cube 或 with  rollup having select distinct   ——去除重复的 order by   ——默认从低到高排序asc(升序)  尾部写desc 从高到底排序(降序)

where语句中不能直接使用聚合函数

1.问题描述 select deptno ,avg(sal) from emp where count(*)>3 group by deptno; 在where 句中使用聚合函数count(*),报出错误:ORA-00934: group function is not allowed here 那是为什么呢? 2.问题解决: 大致解释如下,sql语句的执行过程是:from-->where-->group by -->having --- >order by --> s

聚合函数与分组

一:聚合函数 count(*),返回行的数目.数值为null的不计算在内,distinct 去重复. sum()计算列中所有值得总和. avg()计算列中所有值得平均值. max()计算列中所有值得总最大值. min()计算列中所有值得最小值. 二:分组的语句 group by 三:having 子句 四:执行顺序 select--from--where--group--order by--having 五:组合查询 1,添加到其他查询的查询语句叫子查询.如果子查询的返回单行时,就可以简单的插入