表1
+----------------------+
|column A | Column B|
| 2 | 4 |
| 3 | 5 |
| 1 | 2 |
| 1 | 2 |
| 8 | 7 |
+----------------------+
输出
+-------+
|1 | 2 |
|1 | 2 |
+-------+
我只想打印上面没有计数的输出,还有任何重复记录的例子?请帮忙
4条答案
按热度按时间unhi4e5o1#
你可以用
in
具有分组子查询的运算符为:或者使用
self-join
作为:rextester演示
bvpmtnay2#
在下面的地方怎么样
或者
或者你可以用
exists
```select t1.* from t t1 where exists
(select 1 from t t2 where t2.columnA=t1.columnA
and t2.columnB=t1.columnB group by columnA,columnB
having count(*)>1
)
58wvjzkj3#
我会用
EXISTS
,如果表有主列:zzlelutf4#
您可能只需要那些重复的行。如果mysql版本中没有可用的窗口函数,可以执行以下操作:
细节:在派生表中,我们得到
columnA
以及columnB
有多行的(HAVING COUNT(*) > 1
).现在,我们只需将这个结果集连接回主表,只获取那些行。
注意:如果您只想获取这两列,则不需要这种方法。一个简单的
Group By
与Having
如其他答案所示,就足够了。但是,如果表中有更多的列,则需要获取所有列,而不仅仅是列(用于确定重复项);你需要使用这种方法。