SQL查询在表中只查找相同的对是什么?

时间:2016-06-07 17:14:55

标签: sql

我有一张这样的表:

S_Name   C_ID
'A'       123
'B'       456
'A'       123
'A'       123
'C'       789
'B'       456
'C'       098
'C'       456
'B'       456

我只想要那些C_ID不会改变的S_Name。

我想要的答案是:

S_Name  C_ID
'A'      123
'B'      456

' C'不能在结果中,因为它的C_ID在不同的地方是不同的。

2 个答案:

答案 0 :(得分:2)

group by上使用s_name,同时确保每个分组的countc_id值为1,这应该可以解决问题。

select s_name, max(c_id)
  from tbl
 group by s_name
having count(distinct c_id) = 1

答案 1 :(得分:2)

SELECT
   S_Name,
   MAX(C_ID) as C_ID
FROM
   myTable
GROUP BY
   S_Name
HAVING
   Count(DISTINCT C_ID) = 1