示例数据库:
column1 | column2
--------+---------
1 | 1
2 | 1
3 | 3
4 | 3
5 | 5
6 | 7
7 | 3
我想得到
的输出2 | 1
4 | 3
7 | 3
这是我使用的查询:
SELECT
column2, COUNT(*) c
FROM
table
GROUP BY
column2
HAVING
c > 1
返回:
1 | 2
3 | 3
我想更进一步:
SELECT *
FROM table
WHERE (column1 != column2 AND having count(*) > 1)
答案 0 :(得分:0)
第一个SQL
SELECT column2, COUNT(*) c
FROM table
GROUP BY column2
HAVING c > 1
返回您想要的column2值的漂亮列表。您将需要进行自我联接并获得与之配套的column1。这将需要使用表别名。你可以这样尝试
SELECT T1.column1, T1.column2
from table T1
JOIN (SELECT column2, count(*) c
FROM table
GROUP BY column2
HAVING c > 1) T2 ON T2.column2 = T1.column2
WHERE T1.column1 <> T2.column2
[作者注意]这不是最初写的答案。 The stack help re: editing说:
预计编辑的内容会很多,并且比以前更好 你找到了。进行修改的常见原因包括:
- 修复语法和拼写错误
- 澄清帖子的含义(不更改其含义)
- 要添加仅在评论中找到的其他信息,因此与该帖子有关的所有信息都包含在一个地方
- 要纠正一些小错误或在发布时限内添加更新
- 添加相关资源或超链接
修改不符合任何条件。但是,在同一页面上显示:
如果您不满意自己的贡献 由其他受信任的用户共同编辑,这可能不是 您的网站。
就这样吧。