mysql sql case when_Mysql查询SQL相关总结(case when两种语法及与聚合函数使用)

case when两种语法及与聚合函数使用:

1.

SELECT

CASE

WHEN a.`accountChannel` = 'BSR' THEN 'XX银行'

WHEN a.`accountChannel` = 'BGZ' THEN 'XX银行'

WHEN a.`accountChannel` = 'JZ' THEN '丰付'

ELSE '其它'

END 类型

FROM

`表名` a

GROUP BY a.`accountChannel`;

2.

SELECT

CASE accountChannel

WHEN 'BSR' THEN 'XX银行'

WHEN 'BGZ' THEN 'XX银行'

WHEN 'JZ' THEN '丰付'

ELSE '其它'

END 类型

FROM `表名` a

GROUP BY a.`accountChannel`;

3.比如说一个学生表,有学生id,名字,老师id,来源(app或者pc) 我们有这样的一个需求 我们想知道每个老师有几个学生,并且这些学生里面 来自app的有几个 来自pc的有几个。

这个就有点麻烦了,要看每个老师下面有几个学生 肯定是将老师id分组 然后count(1) , 这个简单 但是 我们还要知道每个老师下面学生分别来自app几个 pc端几个 无疑还是要用到count 然后再搭配case when 的用法来判断

SELECT count(1) '数量',stu.tid,

COUNT(CASE WHEN ly = 'pc' then 1 END) pc,

COUNT(CASE WHEN ly = 'app' then 1 END) app

FROM stu GROUP BY tid

#意思就是说 只要ly=pc 就算符合一条 然后用count累加 后面的那个1 无关紧要,你写任意数字都可以 但是我们习惯上都写1 比如我们习惯上统计总数喜欢count(1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值