繁体   English   中英

带group by和having子句的SQL

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

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