SQL case when 学习

今年大学刚毕业,刚上班的时候就分配了一个很艰巨的任务——用 birt做报表,我对报表连个概念都没有,别的同事教了一下我,后来发现,最主要的就是写SQL,写好SQL后其他的就拖一下就行了,但是SQL真的很复杂,像我这种没做过什么大项目,技术就一般的人来说,写起来好困难。想了好久都没有想出来,后来还是问了一下别人,人家一下子就弄出来了,顿时感觉很崇拜。

主要写的内容如下图,统计每个小组成员选“是”的总数和选“否”的总数。别的不说了,直接公布答案了

先根据小组进行分组,然后可以使用聚合函数sum,sum里面嵌套case when。

select 组别, sum(case when是否选择=’是’ then 1 else 0 end) as 选择是的总数,

sum(case when 是否选择=’否’ then 1 else 0 end ) as 选择否的总数

group by 组别;

SQL语句没有经过测试,只是根据当时写的回忆了一下,但是思路是正确的

当统计“是”的总数时,把该列选“是”的置为1,其余为0,然后进行sum求和。

表结构比下图复杂的多,下图只是做了个例子

组别

成员

是否选择

小组A

成员A

成员B

成员C

弃权

小组B

成员D

成员E

弃权

成员F

成员G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值