SQL查询为每个用户提供具有计数的唯一字段

时间:2014-11-06 04:11:14

标签: mysql sql select count group-by

我正在尝试找出一个查询,该查询计算用户给出唯一答案的次数,并返回用户,答案和这些答案的计数。该表如下所示:

Table Likes
ID   Username   Choice
1    Bobby      Cat
2    Tina       Rabbit
3    Bobby      Rabbit
4    Alex       Goose
5    Bobby      Cat
6    Alex       Goose
7    Alex       Dog

运行查询后,我希望让每个用户及其选择和每个用户的计数如此:

Result
Username   Choice      Count(Selection)
Bobby      Rabbit      1
Bobby      Cat         2
Tina       Rabbit      1
Alex       Goose       2
Alex       Dog         1

到目前为止,我提出的最好的是:

SELECT Username, Choice, Count(Choice) FROM Likes GROUP BY Username

但这不太对。

2 个答案:

答案 0 :(得分:0)

您需要在Group by添加选择来计算用户给出唯一答案的次数。 Group by中的无选择将获得每个用户给出的答案数

SELECT Username,
       Choice,
       Count(Choice)
FROM   Likes
GROUP  BY Username,
          choice 

答案 1 :(得分:0)

此查询会有所帮助。

 SELECT Username, Choice, Count(Choice) AS CountSelection 
 FROM Likes 
 GROUP BY Username, Choice