sql 语句 count 使用请教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句 count 使用请教相关的知识,希望对你有一定的参考价值。

如果查询stuinfo表里男生的数据,可以写成
select count(*) as 人数 from stuinfo where sex='男'
但是,我想不使用where条件,把条件写到count的选项里面
类似这样:
select count(--性别是'男'的数据) from suinfo
可不可以实现呢,谢谢了

可以这样写
select sum(iif(sex='男',1,0)) as 人数 from stuinfo
也可以用case when
select sum(case sex when '男' then 1 else 0 end)) as 人数 from stuinfo
参考技术A

过多繁琐的sql影响代码质量,及维护成本,以下为两种小技巧处理方式,仅供参考。

第一种,用case ---when---方法

select id

,sum(case when type in (1,2) then [count] else 0 end) as sum1

,sum(case when type in (3) then [count] else 0 end) as sum2

,sum(case when type in (4,5) then [count] else 0 end) as sum3

from 表名

group by id

第二种,if 判断

SELECT   SUM( goods_amount ) AS money,   

count( * ) AS num,  

count(if(pay_status=1,true,null)) AS success,   

count(if(pay_status=2,true,null)) AS fall   

FROM `tab_order_info`     

WHERE user_id = 11 

参考技术B SQL COUNT() 语法
SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_nameSQL COUNT(*) 语法
COUNT(*) 函数返回表中的记录数:

SELECT COUNT(*) FROM table_nameSQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。

count()的三种语法中,没有可以满足你的条件的,唯一的方法就是使用where,就是你列出的那种
使用COUNT(DISTINCT column_name)语法的话,你的返回值应该是2...

参考资料:http://www.w3school.com.cn/sql/sql_func_count.asp

参考技术C 下面的几条语句完成向A表插入10000条C=1,D=2,E=3的记录:
DECLARE @C INT,@D INT,@E INT,@COUNT INT
SELECT @C=1,@D=2,@E=3,@COUNT=10000
WHILE @COUNT>0
BEGIN
insert into A表(C,D,E) VALUES(@C,@D,@E)
SET @COUNT=@COUNT-1
END
参考技术D 过分发图服服帖帖让他人与人

sql 语句中的DISTINCT以及在count中的使用

district必须放在所有字段全面:

SELECT DISTINCT student,class FROM courses 

单字段时按照字段筛选,多字段是以所有字段的值作为key来筛选。

SELECT class,COUNT(DISTINCT student,class) as c FROM courses GROUP BY class 

在count中的使用也是一样。相当于先通过 select district 出来后再进行count。

以上是关于sql 语句 count 使用请教的主要内容,如果未能解决你的问题,请参考以下文章

请教数据库高手,在access2003里,用sql语句查询实现两表关联查询用count更新其中一表?

关于Oracle的SQL语句中group by的空值问题请教?

[SQL] 请教一下 count里面有case when 一般情况下啥时候用

请教问Mybatis 如何打印SQL语句

[SQL] 请教一下 count里面有case when 一般情况下啥时候用

请教问Mybatis 如何打印SQL语句