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 拼接的使用,前后两个的字段要对应。。

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

 

### MySQL UNION ALL 操作说明 在 MySQL 中,`UNION ALL` 操作用于合并来自多个 `SELECT` 语句的结果集。此操作符会返回所有匹配的组合结果,并保留所有的重复项[^4]。 #### 合并的是而非列 需要注意的是,`UNION ALL` 是按垂直方向增加新记录的方式工作,即它是在现有数据的基础上追加新的而不是创建额外的列来存储数据。这意味着如果两个查询有相同的结构(相同数量类型的字段),那么它们可以通过 `UNION ALL` 被连接起来形成一个新的更大的表格视图,其中每一行代表原始表中的一个条目[^1]。 下面是一个简单的例子展示如何使用 `UNION ALL` 来合并两组不同的数据: ```sql SELECT 'Apple' AS fruit, 10 AS quantity UNION ALL SELECT 'Banana', 20; ``` 这段 SQL 将会产生如下所示的结果集: | fruit | quantity | |-------|----------| | Apple | 10 | | Banana| 20 | 在这个案例里,虽然看起来像是增加了新的一列 (`fruit`) 另一列 (`quantity`) ,但实际上这是通过给定固定值作为别名定义而来的虚拟列,在实际执过程中仍然是按照的方向进了扩展[^2]。 因此可以得出结论:`UNION ALL` 主要是用来沿着纵向维度——也就是沿“”的方向上进数据集合的操作工具;对于横向拓展即向表内添加更多属性的任务,则通常不会采用这种方法而是考虑其他方式如修改表结构或设计更复杂的查询逻辑[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值