我有多行的表,它将按以下方式包含数据
col1 col2
100 - 1
100 - 0
102 - 1
102 - 0
103 - 1
我需要编写一个查询来获取行(103-1)。表示查询应该返回没有相应记录对的行(xxx-1,xxx-0)。
答案 0 :(得分:2)
select col1, max(col2) as col2
from your_table
group by col1
having count(distinct col2) = 1
答案 1 :(得分:0)
试试这个:
select *
from your_table a
where not exists (select 1
from your_table b
where b.col1 = a.col1
and b.col2 != a.col2)
以下是sql fiddle
的示例答案 2 :(得分:0)
如果列col2只有两个可能的值,则为1和0,那么您可以使用以下查询来完成上述问题 -
SELECT *
FROM table_name
WHERE col1 IN (SELECT col1 FROM your_table
GROUP BY col1 HAVING COUNT(DISTINCT col2) = 1)
如果您想要输出中的完整列(col1和col2),可以在查询中使用IN
。