Mysql:实现用户count()函数统计各个字段的数据

业务需求1:有一张员工信息表,现在进行如下信息统计
查出表中‘中共党员’,‘中共预备党员’,‘发展对象’,‘入党积极分子’,‘入党申请人’的数量。
特殊性是:‘中共党员’,‘中共预备党员’;‘发展对象’,‘入党积极分子’,‘入党申请人’两组是在表中不同的字段。
解决方法:
用Mysql的count(case when poli_look = '中共党员' then '中共党员' end) as '中共党员',解决:如下

select 
count(case when poli_look = '中共党员' then '中共党员' end) as '中共党员',
count(case when poli_look = '中共预备党员' then '中共预备党员' end) as '中共预备党员',
count(case when party_nodes = '发展对象' then '发展对象' end) as '发展对象',
count(case when party_nodes = '入党积极分子' then '入党积极分子' end) as '入党积极分子',
count(case when party_nodes = '入党申请人' then '入党申请人' end) as '入党申请人'
from rost_use

结果:
在这里插入图片描述
加条件的查询如下

select 
count(case when poli_look = '中共党员' then '中共党员' end) as '中共党员',
count(case when poli_look = '中共预备党员' then '中共预备党员' end) as '中共预备党员',
count(case when party_nodes = '发展对象' then '发展对象' end) as '发展对象',
count(case when party_nodes = '入党积极分子' then '入党积极分子' end) as '入党积极分子',
count(case when party_nodes = '入党申请人' then '入党申请人' end) as '入党申请人'
from rost_use
where part_name = 'xxxxxxxxxx党支部'

业务需求2有一种表记录如下信息
在这里插入图片描述
现在表中的数据是有些记录的是多个类型,用【;】隔开,现在要统计的是每个类型出现多少次,有多个类型的分开到各个类型里面。如图
在这里插入图片描述
代码如下

SELECT `name` meeting_type,count(*) num FROM (
select case when meeting_type like '%党小组会%' then '党小组会' end as `name` from party_conference where meeting_type like '%党小组会%'
union all
select case when meeting_type like '%党小组会%' then '党小组会' end as `name` from party_conference where meeting_type like '%党小组会%'
union all
select case when meeting_type like '%民主评议党员%' then '民主评议党员' end as `name` from party_conference where meeting_type like'%民主评议党员%'
union all
select case when meeting_type like '%主题党日%' then '主题党日' end as `name` from party_conference where meeting_type like '%主题党日%'
union all
select case when meeting_type like '%支部党课%' then '支部党课' end as `name` from party_conference where meeting_type like '%支部党课%'
union all
select case when meeting_type like '%组织生活会%' then '组织生活会' end as `name` from party_conference where meeting_type like '%组织生活会%'
union all
select case when meeting_type like '%支部党员大会%' then '支部党员大会' end as `name` from party_conference where meeting_type like '%支部党员大会%'
union all
select case when meeting_type like '%党委/党总支/支委会%' then '党委/党总支/支委会' end as `name` from party_conference where meeting_type like '%党委/党总支/支委会%') tmp GROUP BY `name`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值