请教一个select语句。
名称 价格
A 12
A 13
B 12
B 12
C 14
怎么能查询出:有哪些名称的价格不是唯一的? 结果应该是:A
因为两个A的价格一个是12另一个是13,价格不同。
两个B价格都是12,价格是唯一的,即12。
一个C也是唯一的。
[解决办法]
select 名称
from (
select distinct * from tb)t
group by 名称
having COUNT(*)>1
;with tb as
(
select 'A' as 名称,12 as 价格
union all select 'A',13
union all select 'B',12
union all select 'B',12
union all select 'C',14
)
select 名称
from (
select distinct * from tb)t
group by 名称
having COUNT(*)>1
结果:
/*
A
*/
create table test (name nvarchar(10),price int)
insert into test values('A',12)
insert into test values('A',13)
insert into test values('B',12)
insert into test values('B',12)
insert into test values('C',14)
insert into test values('C',12)
insert into test values('B',12)
insert into test values('C',13)
select t.name
from test t
INNER JOIN test e
on t.name=e.name
where e.price<>t.price
group by t.name
/*
name
A
C
*/