我有困难与我认为应该是一个简单的问题。我想选择一个表中某个特定列具有重复值的所有列。如何选择行的所有列,我检查是否只有1或2列包含重复值
我一直在尝试使用聚合函数,但这就限制了我,因为我只想匹配一列并显示所有值。使用聚合似乎需要我按'我想要显示的所有列进行分组。
我有困难与我认为应该是一个简单的问题。我想选择一个表中某个特定列具有重复值的所有列。如何选择行的所有列,我检查是否只有1或2列包含重复值
我一直在尝试使用聚合函数,但这就限制了我,因为我只想匹配一列并显示所有值。使用聚合似乎需要我按'我想要显示的所有列进行分组。
如果我理解正确的话,这应该这样做:
SELECT *
FROM YourTable A
WHERE EXISTS(SELECT 1
FROM YourTable
WHERE Col1 = A.Col1
GROUP BY Col1
HAVING COUNT(*) > 1)
你可以加入你在哪里聚集,并确定哪些是重复的“关口”的价值观派生表:
SELECT a.*
FROM Table1 a
INNER JOIN
(
SELECT col
FROM Table1
GROUP BY col
HAVING COUNT(1) > 1
) b ON a.col = b.col
这个查询让您有机会按升序或降序订购可乐,并改变可乐的产量。
这是SqlFiddle的演示。
with cl
as
(
select *, ROW_NUMBER() OVER(partition by colb order by cola) as rn
from tbl)
select *
from cl
where rn > 1