sql – 多个计数和分组

我的表看起来像这样:

ID ProductName ProductCode
1  abc         123
2  abc         123
3  abc         456
4  def         789
5  ghi         246
6  jkl         369
7  jkl         369
8  jkl         369
9  jkl         468
10 jkl         468

我希望创建一个如下所示的汇总表:

ProductName ProductCode Total
abc         123         2
abc         456         1
jkl         369         3
jkl         468         2

换句话说,我对产品“def”和“ghi”不感兴趣,因为它们只出现在原始表中一次.对于其他一切我想通过ProductName和ProductCode进行分组并显示计数.

我已经尝试过使用group by子句以及在哪里(选择…),但我刚刚结束了圆圈.

该表有大约50,000行,位于SQL Server 2008 R2上.

最佳答案 就是这个:

SELECT
      ProductName,
      ProductCode,
      COUNT(*) as Total
 FROM Table1
 WHERE ProductName IN (SELECT ProductName FROM Table1 GROUP BY ProductName HAVING COUNT(*) > 1)
 GROUP BY ProductName, ProductCode

http://www.sqlfiddle.com/#!3/c79ad/9

点赞