获取重复的输出,与另一列不同

时间:2019-02-14 11:59:03

标签: sqlite duplicates

示例数据库:

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)

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说:

  

预计编辑的内容会很多,并且比以前更好   你找到了。进行修改的常见原因包括:

     
      
  • 修复语法和拼写错误
  •   
  • 澄清帖子的含义(不更改其含义)
  •   
  • 要添加仅在评论中找到的其他信息,因此与该帖子有关的所有信息都包含在一个地方
  •   
  • 要纠正一些小错误或在发布时限内添加更新
  •   
  • 添加相关资源或超链接
  •   

修改不符合任何条件。但是,在同一页面上显示:

  

如果您不满意自己的贡献   由其他受信任的用户共同编辑,这可能不是   您的网站。

就这样吧。