我有一张类似这样的表:
id title
11 test
22 test
33 dummy
37 dummy
35 dummy
44 abc
45 abc
选择之后我只需要这样:
id title
11 test
22 test
44 abc
45 abc
我是这样写的:
select * from content having count(*)=2 group by id, title
但我不确定为什么它没有返回预期的结果..
答案 0 :(得分:4)
您需要从GROUP BY子句中删除id
,这意味着您无法保留SELECT子句(对于SQL Server和大多数DBMS)。所以,请在这样的子查询中包含。
select * from content where title in (
select title
from content
group by title
having count(*)=2
)
答案 1 :(得分:3)
但我不确定为什么它没有返回预期的结果
因为当您按ID
AND title
进行分组时,HAVING
子句将只计算这两个字段的唯一组合。它不仅仅计算每个title
的记录数。
我想你想要这个:
select * from content
WHERE title in
( SELECT title
FROM content
group by title
having count(*)=2
)