mysql 列表展示,最后一行统计以上列表。union all

效果如图,原本想最后一行的数据再请求一次进行统计。。

百度瞎捉摸,Mysq中的Union all 可以拼接。只需对上面的sql进行sum, 字段 对应就可以。


SELECT
a.area,
a.companyNum,
COUNT(a.EXAMINE_RESULT != '')checkNum,
COUNT(a.EXAMINE_RESULT = 1) unPassNum,
COUNT(a.HANDLE_RESULT LIKE '%5%') punishNum
FROM 
(
SELECT 
zje.AREA,
COUNT(zje.LICENCE_CODE !='') companyNum,
zjr.EXAMINE_RESULT,
zjr.COMPANY_ID,
zjr.HANDLE_RESULT,
COUNT(CASE WHEN zju.PUNISH LIKE '%5%' THEN 1 ELSE NULL END) rePunish
FROM 
zj_enterprise zje INNER JOIN zj_samling_result zjr ON zje.ENTERPRISE_ID = zjr.COMPANY_ID INNER JOIN zj_samling_unqualified zju ON zjr.ID = zju.RESULT_ID
GROUP BY zje.AREA
)AS a
GROUP BY a.COMPANY_ID

UNION ALL 

SELECT '合计' AS AREA,SUM(b.companyNum) companyNum,SUM(b.checkNum) checkNum,SUM(b.unPassNum) unPassNum,SUM(b.punishNum) punishNum FROM (
SELECT
a.area,
a.companyNum,
COUNT(a.EXAMINE_RESULT != '')checkNum,
COUNT(a.EXAMINE_RESULT = 1) unPassNum,
COUNT(a.HANDLE_RESULT LIKE '%5%') punishNum
FROM 
(
SELECT 
zje.AREA,
COUNT(zje.LICENCE_CODE !='') companyNum,
zjr.EXAMINE_RESULT,
zjr.COMPANY_ID,
zjr.HANDLE_RESULT,
COUNT(CASE WHEN zju.PUNISH LIKE '%5%' THEN 1 ELSE NULL END) rePunish
FROM 
zj_enterprise zje INNER JOIN zj_samling_result zjr ON zje.ENTERPRISE_ID = zjr.COMPANY_ID INNER JOIN zj_samling_unqualified zju ON zjr.ID = zju.RESULT_ID
GROUP BY zje.AREA
)AS a
GROUP BY a.COMPANY_ID
) AS b 

使用Union all 拼接的使用,前后两个的字段要对应。。

简单给自己记录下,省的忘记了。

 

相关文章:

  • 2022-12-23
  • 2022-01-29
  • 2021-04-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-08-24
猜你喜欢
  • 2021-04-03
  • 2022-01-23
  • 2022-01-07
  • 2021-05-27
  • 2021-07-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案