[英]How to select all rows with duplicated column value in SQL
我在col1中有一個表,其中有一些重復:
co1, col2, col3
a, d, f
r, h, d
e, g, h
z, k, m
e, s, t
a, b, c
e, k, t
由於這篇文章 ,我可以選擇所有重復的col1值
SELECT col1
FROM mytable
GROUP BY col1
HAVING ( COUNT(col1) > 1 )
如何選擇所有具有重復col1值的行並按col1對其進行排序? 預期結果如下所示:
co1, col2, col3
a, d, f
a, b, c
e, g, h
e, s, t
e, k, t
使用EXISTS
SELECT *
FROM mytable a
WHERE EXISTS (SELECT 1
FROM mytable b
WHERE a.col1 = b.col1
HAVING Count(col1) > 1)
Order by col1
其他方式
SELECT *
FROM (SELECT *,
Count(1)OVER( partition BY col1) AS cnt
FROM mytable) a
WHERE cnt > 1
ORDER BY col1
您可以為此使用窗口函數:
select co1, col2, col3
from (
select co1, col2, col3, count(*) over (partition by col1) as cnt
from the_table
) t
where cnt > 1
order by col1;
您可以將結果與原始表進行Inner Join
,如下所示:
select t1.*
from your_table t1
inner join (
select col1
from your_table
group by col1
having count(col1) > 1 ) t2
on t1.col1 = t2.col1
order by t1.col1;
Select *
From ( Select * ,count(*) over (Partition By Col1) as cnt from t) t
Where cnt>1
Select co1,col2,col3 From
( Select * ,count(*) over (Partition By Co1) as cnt from #b) a
Where cnt>1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.