如何在多列中找到重复计数?

bit*_*its 3 sql t-sql database sql-server-2005

这是一个模仿我的场景的示例表:

COL_1   COL_2   COL_3   COL_4   LAST_COL
A       P       X       NY      10
A       P       X       NY      11
A       P       Y       NY      12
A       P       Y       NY      13
A       P       X       NY      14
B       Q       X       NY      15
B       Q       Y       NY      16
B       Q       Y       CA      17
B       Q       Y       CA      18
Run Code Online (Sandbox Code Playgroud)

LAST_COL是主键,因此每次都会有所不同.

我想忽略LAST_COL并收集一些与4列其余部分相关的统计信息.

基本上,我的表中有数百万行,我想知道哪一COL_1, COL_2, COL_3 and COL_4行具有最多行数.

所以,我想要一个查询,它可以输出所有唯一的行及其出现次数.

COL_1   COL_2   COL_3   COL_4   TOTAL
A       P       X       NY      3
A       P       Y       NY      2
B       Q       X       NY      1
B       Q       Y       NY      1
B       Q       Y       CA      2
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助我的人.

*我正在使用MS SQL,如果这会有所不同.

squ*_*man 9

SELECT COL_1, COL_2, COL_3, COL_4, COUNT(*)
FROM MyTable
GROUP BY COL_1, COL_2, COL_3, COL_4
Run Code Online (Sandbox Code Playgroud)

如果您想要清除没有重复的行:

SELECT COL_1, COL_2, COL_3, COL_4, COUNT(*)
FROM MyTable
GROUP BY COL_1, COL_2, COL_3, COL_4
HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)