mysql 中分组统计分组字段中有多个值如何将这多个值拆分并显示原有统计总数
可以使用 MySQL 的字符串处理函数来拆分分组字段中的多个值,例如使用 SUBSTRING_INDEX 函数来获取字段中的第一个值,然后再使用 GROUP_CONCAT 函数将该值进行统计,最后再使用 UNION ALL 将所有值的统计结果合并起来。示例如下:
SELECT SUBSTRING_INDEX(field, ',', 1) AS value1, COUNT() AS count FROM table GROUP BY value1 UNION ALL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ',', 2), ',', -1) AS value2, COUNT() AS count FROM table GROUP BY value2 UNION ALL SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ',', 3), ',', -1) AS value3, COUNT(*) AS count FROM table GROUP BY value3
其中,SUBSTRING_INDEX 函数的第一个参数是要处理的字符串字段,第二个参数是分隔符,第三个参数是要获取的子字符串在分隔符分割后的位置(正数表示从左往右数,负数表示从右往左数)。GROUP_CONCAT 函数用于将同一分组中的多个值合并成一个字符串,可以用 DISTINCT 关键字去重。最终结果是将所有值的统计结果合并起来,可以通过对结果集进行排序和筛选来获取需要的信息。
原文地址: http://www.cveoy.top/t/topic/bZrn 著作权归作者所有。请勿转载和采集!