0

我很难理解我认为应该是一个简单的问题。我想选择表中一个特定列具有重复值的所有列。

我一直在尝试使用聚合函数,但这限制了我,因为我只想匹配一列并显示所有值。使用聚合似乎需要我“分组”我要显示的所有列。

4

3 回答 3

2

You can join on a derived table where you aggregate and determine "col" values which are duplicated:

SELECT a.*
FROM Table1 a
INNER JOIN
(
    SELECT col
    FROM Table1
    GROUP BY col
    HAVING COUNT(1) > 1
) b ON a.col = b.col
于 2013-09-25T16:10:19.213 回答
2

如果我理解正确,应该这样做:

SELECT * 
FROM YourTable A
WHERE EXISTS(SELECT 1 
             FROM YourTable
             WHERE Col1 = A.Col1
             GROUP BY Col1
             HAVING COUNT(*) > 1)
于 2013-09-25T16:09:18.847 回答
0

此查询使您有机会按升序或降序排列可乐并更改可乐输出。

这是关于SqlFiddle的演示。

with cl
as
(
select *, ROW_NUMBER() OVER(partition by colb order by cola ) as rn
from tbl)

select *
from cl
where rn > 1
于 2013-09-25T16:51:36.050 回答