[英]Sum of values in a column basis a condition using SQL
我想编写一个 SQL 来为列(比如 A)具有唯一值的那些行添加列(比如 B)中的值。
A栏 | 另一个标题 |
---|---|
琥珀色 | 78 |
黄色 | 101 |
绿色的 | 46 |
蓝色的 | 27 |
琥珀色 | 78 |
黄色 | 101 |
因此,我想首先选择 A 列中具有唯一值(琥珀色、黄色、绿色和蓝色)的所有行,然后在 B 列中添加相应的值。在上面的示例中,答案应该是 B 列的总和 = 78+101+ 46+27
但是“列(例如 A)具有唯一值的行”。 是绿色和蓝色? 在这种情况下,查询是:
with mytable as (
select 'Amber' as columnA, 78 as columnB from dual union all
select 'Yellow' as columnA, 101 as columnB from dual union all
select 'Green' as columnA, 46 as columnB from dual union all
select 'Blue' as columnA, 27 as columnB from dual union all
select 'Amber' as columnA, 78 as columnB from dual union all
select 'Yellow' as columnA, 101 as columnB from dual
)
select columnA, sum(columnB)
from mytable
group by columnA
having count(*) = 1; --1 occurrence
否则请更好地指定唯一行的键。
谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.