gpt4 book ai didi

sql - Oracle SQL 尝试获取列的百分比

转载 作者:行者123 更新时间:2023-12-04 00:41:17 24 4
gpt4 key购买 nike

您好,我正在使用 Oracle SQL Developer 并试图在我的表中获取百分比。

我当前的查询是:

select 
decode(grouping(life), 1, 'Total', life) as "LifeName",
sum(case
when task is not null and to_char(datee, 'MM') = '08'
and to_char(datee, 'YYYY') = '2013'
then 1
else 0
end) as "MonthStatus"
from life_lk, task_c
where life_lk.life_id = task_c.life_id
group by rollup(life)

我得到的当前输出是:

LifeName             MonthStatus
dog 5
bear 20
cat 1
Fish 4
Total 30

但是,我希望输出为:

LifeName             MonthStatus           Percent
dog 5 16
bear 20 66
cat 1 3
Fish 4 13
Total 30 100

因此,对于“月状态”下的每个单元格,我希望将数字除以总数,在本例中为 30。该数字会随时间动态变化,因此我不能简单地除以 30。

抱歉,表格看起来很草率。我不确定如何让它们看起来整齐有序。

感谢帮助

最佳答案

分析函数 ratio_to_report() 可能适合您。它给出了一个值与指定窗口的所有这些值之和的比率。

在你的情况下:

100* ratio_to_report(sum(...)) over ()

不过,我不确定在汇总的情况下它会如何工作。

http://docs.oracle.com/cd/E18283_01/server.112/e17118/functions142.htm

关于sql - Oracle SQL 尝试获取列的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18497359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com