庆云php

庆云php

mysql分组查询字段值重复出现的次数,进行重复筛选,排序,合并

SQL 0

2023年11月20日 每日一猜答案: 答案:ABC
每日一猜答案分析:

我们常常遇到很多的数据进询时,需进行分组取第一条,分组合并,分组取到所有的值,分组取重复出现次数最多的前几项等。 下边就是实在的SQL了, 查询分组统计出现两次以上的数据 select   单号 from tablename  group by  单号 HAVING COUNT(*)>1 查询分组统计出现两次以上的数据,并且取到最大的序号, select   单号,,count(*)sl ,max(序号) 序号,group_concat(DISTINCT (序号)) bill_code from tablename  group by  单号 HAVING COUNT(*)>1 ORDER BY sl   DESC LIMIT 0,3 上边句字中 max(序号) 即取分组中最大的 group_concat(序号) 把分组后对应的所有序号合并了组成一个字段 group_concat(DISTINCT (序号)) 把分组后对应的所有序号去重后合并了组成一个字段, group_concat(distinct 序号 SEPARATOR ';')  其中 SEPARATOR ';' 为指定以 ; 分隔合并的字符   在使用group_concat做插入更新时,一定要注意在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是1024。 加上下边两句临时修改限制弯量以使用。 SET GLOBAL group_concat_max_len = 1024 * 1000; SET SESSION group_concat_max_len = 1024 * 1000; create table poems_author_wjhj as SELECT shiauthorid,concat('《',group_concat(distinct title SEPARATOR '》,《'),'》') sz FROM `dr_1_news` a where a.lx='poems' group by shiauthorid HAVING COUNT(*)<10 ;