我有一张包含以下数据的表格:
NAME VALUE
ABC Y
ABC Y
ABC Y
ABC Y
ABC Y
DEF W
DEF Y
DEF Y
DEF Y
DEF Y
GHI Y
GHI Y
GHI Y
GHI Y
GHI Y
现在我想编写一个查询,返回那些具有此特定名称的行中所有值相同的名称。
理想的输出是:
ABC
GHI
因为ABC和GHI的所有值都等于Y.
答案 0 :(得分:0)
select NAME
from YOUR_TABLE
group by NAME
having count(distinct VALUE) = 1
and min(VALUE) = 'Y'
答案 1 :(得分:0)
使用DISTINCT
删除重复项,使用NOT EXISTS
来避免使用除Y之外的其他值。
select distinct name
from tablename t1
where not exists (select 1 from tablename t2
where t1.name = t2.name
and t2.value <> 'Y')