实际业务很复杂,不细说了,我只说一下和要讲的东西相关的一点
问题描述:假设有一个企业项目表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