繁体   English   中英

列中的值总和基于使用 SQL 的条件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM