group_concat+case when实现分组查询中,返回每组的特定数据

实际业务很复杂,不细说了,我只说一下和要讲的东西相关的一点

问题描述:假设有一个企业项目表table1如下:

column1 column2
code1 a
code2 b
code1 b
code1 c
... ...

我们要对column1分组查询,我们会得出三个组code1,code2,code3。

但是每一组里的数据有特殊要求:以code1举例,如果code1组中存在column2=b,则code1属于b类型,如果不存在b,存在column2=a,则code1属于a类型,如果即不存在b也不存在a,则code1属于c类型。

其他组code2,code3。。。要求一样。

这种情况下,简单的办法已经没办法实现需求了,我们既不能去最大,也不能取最小,也没办法要求column2要=或者like什么,愁了好久,灵光一闪,想了这么个办法:

select column1,(case when (GROUP_CONCAT(`column2`) like '%b%') then 'b' when

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值