【发布时间】:2014-01-31 00:06:53
【问题描述】:
这是一个基于之前帖子的单独问题:
[链接]How to calculate Grand Totals when using OVER (partition by ...) using Oracle SQL
我正在使用以下 Oracle SQL 查询:
SELECT JOB_GROUP,
SUM(PEOPLE) AS CURRENT_PEOPLE
SUM(PEOPLE) / '100' AS RATIO
FROM MY_VIEW
WHERE MONTH = '01-DEC-2013'
GROUP BY ROLLUP (OB_GROUP)
ORDER BY RATIO DESC;
这个查询给了我这样的输出..
JOB_GROUP CURRENT_PEOPLE RATIO
WORKER1 100 1.0
WORKER2 30 .3
WORKER3 40 .4
WORKER4 25 .25
WORKER5 30 .30
(NULL) 225 2.25
我需要能够将所有比率的总和除以 job_group = 'WORKER1', WORKER2, WORKER4 的比率的总和。例如,我们可以有 5 个不同的 job_groups,但我只需要 1、2 和 4 的比率之和。我怀疑这是某种类型的子查询,但还没有得到正确的结果。
方程看起来像 sum(ratios) / sum(ratio) where worker, 1,2,4。 2.25 / (1.0 + .3 + .25) = .80
感谢您提供的任何帮助,
【问题讨论】:
-
请提供样本数据和期望的结果。
-
在这些框中添加表格的秘诀是什么?我查看了高级帮助,但找不到。我认为您或某人已由前一个编辑并很好地组织了它;)感谢您的帮助。
-
。 .这是一个参考。 . . stackoverflow.com/editing-help。一般来说,如果你在一行的开头放置四个空格,你会在阴影区域得到固定宽度的字体,这对于代码和表格来说都很好。
-
嗨...我添加了一个带有数据的表格,我希望这使它更清晰一点。这是我需要学习的 SQL 基础,非常感谢。
-
您从哪里获得
0.80值;2.25/1.55是1.45...?您是要为此获得一个数字,还是将计算值作为当前结果集中每一行的额外列? (无论如何,我不了解您当前的“比率”值,但我认为这并不完全相关)。