我正在使用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列的所有行的计数(当被视为一组值时)都已重复。为了进一步澄清,我需要知道Num1 = 6,Num2 = 5,Num3 = 15,Num4 = 18和Num5 = 20的次数,如果它确实发生的话。我还需要知道这五列中是否出现任何其他重复集。
我知道一些SQL,但这是一个复杂的查询,我需要帮助。我试过了 许多子查询等,但我只是无法弄清楚正确的组合 SELECT和ORDER BY使它工作。有问题的数据表约有7000个 其中的记录预计不会超过大约10k,因此性能是次要的。
提前感谢。
答案 0 :(得分:1)
这看起来像是一个直接的SELECT COUNT,在五列上有一个GROUP BY。
有些事情:
SELECT Num1, Num2, Num3, Num4, Num5, COUNT(someColumn) GROUP BY Num1, Num2, Num3, Num4, Num5
答案 1 :(得分:0)
您可以使用子查询上的连接执行此操作,该子查询仅使用重复项并计算它们
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