[英]SQL with group by and having clause
我有一张桌子
ID SALN INDICATOR
1 100 A
2 100 B
3 200 A
4 200 C
5 100 c
6 300 B
7 200 D
在按SALN分组之后,我需要从表A中提取SALN,并且该组仅具有指标A,B,C
SALN
100
请让我知道这个的SQL
select saln
from A
where indicator in('A','B','C')
group by saln
having sum(indicator) = 100
select saln
from your_table
group by saln
having sum(indicator not in ('A','B','C')) = 0
如果您还需要检查SALN
是否存在A,B和C,请添加
and sum(indicator = 'A') > 0
and sum(indicator = 'B') > 0
and sum(indicator = 'C') > 0
到查询末尾。
如果需要三个值,则可以执行以下操作:
select saln
from A
where indicator in ('A', 'B', 'C')
group by saln
having count(*) = 3;
如果可以有重复,然后使用:
having count(distinct indicator) = 3
如果你想A,B和C,没有其他价值,再一个办法是:
select saln
from A
group by saln
having count(distinct case when indicator in ('A', 'B', 'C') then indicator end) = 3;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.