Mysql查询多个分组数据时其中一个分组以行转列
需求
查询同表的不同板块的不同企业类型的总数
分析
第一步: 以板块为行分组 第二步: 以企业类型为列分组,汇总每个企业类型的总数
SELECT dd.dict_value,ep.plate_code AS 板块代码,pc.plate_name AS 板块名称, IF(dd.dict_label = 壳公司,COUNT(ep.type),--) AS 壳公司, IF(dd.dict_label = 项目类公司,COUNT(ep.type),--) AS 项目类公司, IF(dd.dict_label = 通道类公司,COUNT(ep.type),--) AS 通道类公司, IF(dd.dict_label = 实体公司,COUNT(ep.type),--) AS 实体公司, IF(dd.dict_label = 平台公司,COUNT(ep.type),--) AS 平台公司 FROM enterprise AS ep LEFT JOIN plate_config AS pc ON ep.plate_code = pc.plate_code LEFT JOIN sys_dict_data AS dd ON ep.type = dd.dict_value LEFT JOIN sys_dict_type AS dt ON dd.dict_type = dt.dict_type WHERE ep.is_del=0 # 未逻辑删除 AND ep.fictitious=0 # 虚拟公司 0否1是 AND ep.business_status NOT IN(注销, 迁出,转让) AND dt.dict_name= 企业类型 GROUP BY ep.plate_code,dd.dict_value # 以板块名称和字段编码值(即公司类型)都相同的分为1组 ORDER BY ep.plate_code;
查询结果
上一篇:
5款热门的远程控制软件,让你事半功倍
下一篇:
提高代码可读性的几条准则