SQL如何在分组后的某个字段中加条件

SQL如何在分组后的某个字段中加条件,第1张

在工作中会遇到各种各样的需求,比如会让你统计一些数据的数量,但是在拿数量的时候条件还不一样。这样的话仅仅在where中写条件就不行了,一个统计在校生的个数,一个要统计在校女生的个数。那个这个判断是否为女生的判断就不能写在where中了。我们可以在count的时候加上每个统计所需要的条件比如:

count( IF ( njid =1 and zxzt = 0, TRUE, NULL ) )

这样就是统计原有的条件中再加上年纪id为1,zxzt为0的条件再进行统计。

ps. 这种首字母拼音的格式非常垃圾,但是公司要求的,求不喷。

首先,使用下面语句

select date, count(date) cnt from user where date is not null group by date

结果:

date cnt

1月 2

2月 2

3月 1

在上面语句基础上改进,使之与要求结果一致:

select max(case when date = '1月' then cnt else 0 end ) 1月,

max(case when date = '2月' then cnt else 0 end ) 2月,

max(case when date = '3月' then cnt else 0 end ) 3月

from (select date, count(date) cnt from user where date is not null group by date)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11444016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存