用于计算同一列的值百分比的 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() 计算百分比