繁体   English   中英

在 SQL Oracle 中计算百分比

[英]Calculate percentage in SQL Oracle

我有以下数据,我试图找到每个 ID 在 ORACLE SQL 中工作日与周末的购买百分比

ID 每天总计
1 工作日 78
1 周末 20
2 工作日 13
2 周末 37

我期待的输出是:

ID 每天百分比
1 工作日 79
1 周末 20
2 工作日 26
2 周末 74

百分比由每个 ID 的(每天总计 / 总和(每天总计))计算得出。 最好的方法是什么。 感谢你的帮助!

使用SUM作为解析函数:

SELECT id,
       day,
       100 * total_per_day / SUM(total_per_day) OVER (PARTITION BY id)
         AS percentage
FROM   table_name

其中,对于样本数据:

CREATE TABLE table_name (ID, DAY, total_per_day) AS
SELECT 1, 'weekday', 78 FROM DUAL UNION ALL
SELECT 1, 'weekend', 20 FROM DUAL UNION ALL
SELECT 2, 'weekday', 13 FROM DUAL UNION ALL
SELECT 2, 'weekend', 37 FROM DUAL;

输出:

ID 百分比
1 工作日 79.59183673469387755102040816326530612245
1 周末 20.40816326530612244897959183673469387755
2 工作日 26
2 周末 74

db<> 在这里摆弄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM