oracle 分组求和的同时,在最后列查询 该分组规则求和的总合计

在Oracle数据库中,面对需要计算每个分组的数值及其占整体比例的需求,可以利用分组函数和比例计算函数。举例说明,项目需要查询车道故障原因的故障数及其在总故障数中的百分比。通过将复杂问题拆分为简单的SQL查询,先求出每个车道的故障数,再获取所有车道的故障总数,最后结合ratio_to_report函数计算占比。这样,即使个人能力有限,也能实现功能,虽然可能不是最优解,但实现了目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司项目有一个需求,就是有一张故障表,要查询车道故障原因的的故障数,以及一个车道,在该车道的该故障类型的百分比,

说通俗点,假设 一个公司有10个部门,求每个部门每个月发工资的总和,同时计算每个部门每个月发工资的总和占全公司所发工资的百分比

 

因为涉及公司数据,这里就不把数据贴出来了,个人能力有限,写的不好,仅提供参考

如下图所示

 

想了很久,个人能力有限,也没有有写出来,最后想到了分而治之的思想,把复杂的功能拆分成简单的功能,然后在组合成想要的功能,虽然不一定是最优的方案,但总归是靠自己的能力写出来的

 

首先,先求出每个车道的故障数

SELECT
	'故障原因' AS "searchResult",
	f.ROAD_CODE AS "roadCode",
	s.ROAD_NAME AS "roadName",
	f.STATION_CODE AS "stationCode",
	s.STATION_NAME AS "stationName",
	f.LANE_CODE AS "laneCode",
	COUNT( f.FAULT_TYPE ) AS counts 
FROM
	TB_DS_FAULTINFO f
	LEFT JOIN TB_BASE_STATION s ON f.ROAD_CODE = s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值