gpt4 book ai didi

oracle - 如何确定 Oracle 中列值的分布?

转载 作者:行者123 更新时间:2023-12-05 00:35:51 26 4
gpt4 key购买 nike

例如,如果我有一列代表 YN标志,Y 的百分比是多少以及 N 的百分比是多少?我知道我可以编写一个查询来查找这些数字中的每一个,然后自己计算百分比,但我认为在 PL/SQL 中使用诸如 NTILE 之类的分析函数来做这件事应该是直接的。 .

SELECT COUNT(1), enabled_flag
FROM widgets
GROUP BY enabled_flag;

给我:
COUNT(1)   | enabled_flag
123124 | Y
234234 | N

我需要:
enabled_flag | percentage
Y | 34
N | 56

任何人都可以指出我正确的方向吗?

最佳答案

尝试这样的分析函数:

SELECT round(100*COUNT(1)/sum(count(1)) over (),0), enabled_flag
FROM widgets
GROUP BY enabled_flag;

编辑...您还可以使用 RATIO_TO_REPORT 函数,这可能会使它看起来更干净或更易于维护:
SELECT round(100*RATIO_TO_REPORT(count(1)) over (),0), enabled_flag
FROM widgets
GROUP BY enabled_flag;

关于oracle - 如何确定 Oracle 中列值的分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8889899/

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