C# 多列重复查询
我正在使用csharp中的t-sql查询包含5列数据的数据库表 跟踪某个操作在某个事件中发生的次数的整数 节目。表中还有其他列 例如:C# 多列重复查询,c#,tsql,sql-server-2008-r2,C#,Tsql,Sql Server 2008 R2,我正在使用csharp中的t-sql查询包含5列数据的数据库表 跟踪某个操作在某个事件中发生的次数的整数 节目。表中还有其他列 例如: Num1 Num2 Num3 Num4 Num5 1 15 22 23 32 15 4 21 17 19 6 5 15 18 20 我需要构造一个查询,返回每个重复的整数集和 当将这5列视为一组值时,其中所有这5列都已复制的所有行的计数 为了进一步澄清,我需要知道N
Num1 Num2 Num3 Num4 Num5
1 15 22 23 32
15 4 21 17 19
6 5 15 18 20
我需要构造一个查询,返回每个重复的整数集和
当将这5列视为一组值时,其中所有这5列都已复制的所有行的计数
为了进一步澄清,我需要知道Num1=6、Num2=5、Num3=15、Num4=18和Num5=20的次数(如果确实发生)。我还需要知道这五列中是否有其他重复项
我知道一些SQL,但这是一个复杂的查询,我需要帮助。我试过了
有很多子查询等,但我就是想不出这些子查询的正确组合
选择并按排序,使其正常工作。所讨论的数据表大约有7000个
记录,预计增长不会超过10k左右,因此性能是次要的
提前感谢。这看起来像是一个直接的选择计数,在五列上有一个GROUP BY 大致如下:
SELECT Num1, Num2, Num3, Num4, Num5, COUNT(someColumn) GROUP BY Num1, Num2, Num3, Num4, Num5
您可以通过子查询上的联接来实现这一点,该联接只接受重复项并对它们进行计数
select a.Col1, a.Col2, a.Col3, a.Num1, a.Num2, a.Num3, a.Num4, a.Num5, t.cnt as numberOfDuplicates
from tableA a
join (select Num1, Num2, Num3, Num4, Num5, count(*) as cnt
from tableA
group by Num1, Num2, Num3, Num4, Num5
having count(*) > 1
) t
on a.Num1 = t.Num1 and a.Num2 = t.Num2 and a.Num3 = t.Num3 and a.Num4 = t.Num4 and a.Num5 = t.Num5
对不起,我不明白你的答案。基于您的评论,我尝试了以下操作:“按Num1、Num2、Num3、Num4、Num5从[TableName]组中选择Num1、Num2、Num3、Num4、Num5”,但这似乎会返回所有没有重复的行。当我将COUNT子句放入时,我还收到了一个错误。我不明白你(某专栏)的意思。您能解释一下吗?在
someColumn
中,您应该在表中输入某个列的名称。(您确实提到过它还有其他列,但即使没有,我认为Num列中的任何一列都可以工作。)我只是再试了一次。如前所述,当我在查询中保留COUNT子句时,我收到一个错误,指出无效的对象名“COUNT”。好的,现在这看起来像是我从未想到过的。谢谢,我会去学习Having关键字。