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

发布于 2024-12-27 17:50:58 字数 614 浏览 2 评论 0原文

例如,如果我有一列代表 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

有人能指出我正确的方向吗?

For example, if I have a column that represent a Y or N flag, what percentage is a Y and what percentage is an N? I know I can write a query to find each of these numbers and then calculate the percentage myself, but I figure it should be straight forward doing this in PL/SQL with analytic functions like NTILE.

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

Gives me:

COUNT(1)   | enabled_flag
  123124   | Y
  234234   | N

I need:

enabled_flag | percentage
Y            |         34
N            |         56

Can anyone point me in the right direction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偷得浮生 2025-01-03 17:50:58

尝试这样的分析函数:

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;

Try an analytic function as such:

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

EDIT... you can also use the RATIO_TO_REPORT function which might make it look cleaner or easier to maintain:

SELECT round(100*RATIO_TO_REPORT(count(1)) over (),0), enabled_flag
FROM widgets
GROUP BY enabled_flag;
究竟谁懂我的在乎 2025-01-03 17:50:58

这可能不是最好的方法,但我想它应该有效。

select count(*) * 100 / (select count(*) from widgets), enabled_flag
from widgets
group by enabled_flag

It might not be the best way, but I guess it should work.

select count(*) * 100 / (select count(*) from widgets), enabled_flag
from widgets
group by enabled_flag
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文