SQL如何获得总数的百分比

发布于 2025-01-21 08:20:54 字数 1051 浏览 0 评论 0原文

在SQL中,我只是尝试使用每行百分比的桌子。我到处都是,但不能完全理解。 计数(*)/sum(count(count(*))()是接近的,但这占所有部分的百分比。

数据:
id = ['a','b',...]
方案= [1,2,3,4]

SQL:

SELECT * FROM(
    SELECT
      ID,
      Scenario,
      count(*) as count,
FROM `table`
GROUP BY `ID`,
         `Scenario`
)
pivot(
  sum(count) as total
  for Scenario in (1,2,3,4)
)

当前输出:

ID /方案1234
A2413
B2756

这很好,但是我也想显示每行的%,所以每一行应总计100%。

所需的输出:

ID /方案1234
A20%40%10%30%
B10%45%25%30%

我该怎么做?谢谢。

In SQL I am trying to do a table with percentages for each row only. I've looked everywhere but can't quite get it. count(*)/sum(count(*)) over () is close but that does % of everything.

Data:
ID = ['A','B',...]
Scenario = [1,2,3,4]

SQL:

SELECT * FROM(
    SELECT
      ID,
      Scenario,
      count(*) as count,
FROM `table`
GROUP BY `ID`,
         `Scenario`
)
pivot(
  sum(count) as total
  for Scenario in (1,2,3,4)
)

Current output:

Id / Scenario1234
A2413
B2756

This is good, but I also want to display this as % of each row so each row should add up to 100%.

Desired output:

Id / Scenario1234
A20%40%10%30%
B10%45%25%30%

How can I do this? Thank you.

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

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

发布评论

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

评论(1

半葬歌 2025-01-28 08:20:54

因此,基本上,您尝试为A-1做的是A-1/A?方案/总计 * 100会给您正确的价值吗?然后只是concat a%标志

So basically what you would try to do for A-1 is A-1/A? Would Scenario/Total * 100 give you the correct value? then just concat a % sign

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