Oracle实现按国家、类别分组统计Runs总数及占比的查询咨询
Oracle Runs统计查询实现
你可以直接使用Oracle窗口函数实现按国家、类别分组的Runs统计及占比计算,无需关联两条查询语句,示例代码如下:
SELECT Country AS 国家, Class AS 类别, SUM(Runs) AS Runs总数, ROUND(SUM(Runs) / SUM(SUM(Runs)) OVER (PARTITION BY Country) * 100, 2) || '%' AS 占国家总Runs比例 FROM 你的业务表名 -- 请替换为实际表名 GROUP BY Country, Class ORDER BY Country, Class;
逻辑说明
- 先通过
GROUP BY Country, Class聚合得到每个国家+类别对应的Runs总数 SUM(SUM(Runs)) OVER (PARTITION BY Country)是Oracle窗口函数语法,可直接计算每个国家所有类别的总Runs,无需额外关联子查询- 占比计算默认保留2位小数且带百分号后缀,可根据需求调整
ROUND的保留位数,不需要百分号格式可删除*100和|| '%'逻辑
内容的提问来源于stack exchange,提问作者krash
相关产品推荐
相关产品推荐

