用于计算值集的SQL查询

时间:2015-01-13 00:59:47

标签: sql

添加了更多信息以消除一些混淆。感谢。

我正在尝试在SQL中对值集进行分组。我有下表,并尝试以某种方式得到如下表所示的结果。我已经在SQL 2008中探索了组集,多维数据集,基本的group by子句,但我无法弄清楚SQL查询。有人可以请帮助。如果需要,您可以更改最终结果表格式,但基本思路是如何计算类似的值集。在此表中,a,b,c存在2次,因此计数为2,x,y存在3次,因此计数为3,x,y,z存在1次,因此计数为1.请帮助。

UserId ProductId

1 a    1 b
   1 c
   2 x
   2 y
   3 x
   3 y
   4 x
   4 y
   5 a    5 b
   5 c
   6 x
   6 y    6 z

ProductId Count

a 2
   b 2
   c 2
   x 3
   y 3
   x 1
   y 1
   z 1

2 个答案:

答案 0 :(得分:0)

SELECT COUNT(`ProductId`),`ProductId ` WHERE 1 GROUP BY `ProductId` ORDER BY `ProductId` ASC

答案 1 :(得分:0)

SELECT ProductId, COUNT(UserId) AS NbrOfUsers
FROM TABLE_NAME
GROUP BY ProductId, COUNT(UserId)

您正在选择ProductId& UserId存在多少ProductId的计数。 GROUP BY ProductId会根据UserId对您计算的ProductId进行分组,并将计数显示为NbrOfUsers

您的输出将如下所示:

ProductId NbrOfUsers
a 2
b 2
c 2
x 3
y 3