用于计算同一列的值百分比的 SQL [关闭]

Posted

技术标签:

【中文标题】用于计算同一列的值百分比的 SQL [关闭]【英文标题】:SQL for calculating percentage of values for same column [closed] 【发布时间】:2018-06-22 05:48:51 【问题描述】:

什么是 SQL 用于计算某一列中某个值在另一列中的某个条件的总和(第 1 列中的值总和对于第 2 列中的某个值)并计算第 1 列中所有值的总和(总和第 1 列中的所有值的总和)并将百分比计算为(第 1 列中的值总和对于第 2 列中的某个值/第 1 列中所有值的总和)*100?

我有两列 A 和 B。

A 有值 (1,2,3,4) 和

B 的值为 (1,0,1,0)。

1)第 1 列中的值总和对于第 2 列中的某个值意味着

我必须找到 A 中所有值的总和,其中 B 的值为 1(1,3),即 (4) 和

2)第 1 列中所有值的总和表示

A 的所有值的总和(即 10)。

3) 将百分比计算为(对于第 2 列中的某个值,第 1 列中的值总和/第 1 列中所有值的总和)*100 表示

((1)/(2))*100 在这种情况下,它是 (4/10)*100=(40%)。

【问题讨论】:

如果你添加示例和预期的输出就不会那么复杂了 您使用的是什么 DBMS? 是的,一个例子会很棒。仅根据您编写的解决方案似乎就像一个包含该列总和的子查询,然后您可以计算百分比。 很抱歉没有在问题中包含示例。它很像一个子查询。我有两列 A 和 B A 有值 (1,2,3,4),B 有值说(1,0,1,0).sum of value in column 1 对于第 2 列中的某个值意味着我必须找到 A 中所有值的总和,其中 B 的值为 1(1,3),即 (4)和第1列中所有值的总和A的所有值的总和(即10)。总百分比为(4/10)* 100 =(40%)。谢谢大家的快速回复 【参考方案1】:
select sum(case when Column2 = 'somevalue' then Column1 else 0 end) * 100 / sum(Column1) from NAMES;

看到这个:-

Select percentage of rows that have a certain value - SQL

【讨论】:

以上是关于用于计算同一列的值百分比的 SQL [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何计算列的每个值所在的百分位数? (Spark SQL)[重复]

在同一个 SELECT sql 查询中从 SUM() 计算百分比

来自有条件和无条件列的 SQL 查询分组的比率或百分比

Apache Spark:数据框中行值列表的百分比

在 SQL 中分析并形成分位数并计算落在各个分位数中的值的百分比

用于执行聚合和计算百分比的 SQL 查询