我有一张表中记录了多张选票,每张投票都是针对一个帖子。我希望能够做的是计算每次投票的总发生率。
表格如下:
vote
-----
1
2
3
1
2
3
4
5
2
2
2
2
...and so on...
如何计算记录,例如在该列表中1x2,2x6,3x2,4x1和5x1次。
答案 0 :(得分:3)
select vote, count(votes) as vt
from t_your_table
group by vote
答案 1 :(得分:2)
要获得您想要的内容,您可以使用GROUP BY和COUNT:
SELECT vote, COUNT(*) AS cnt
FROM votes
GROUP BY vote
结果:
vote cnt 1 2 2 6 3 2 4 1 5 1
此结果集中不会显示零计数的投票。如果你想将这些包括在零中,那么你将需要使用OUTER JOIN和一个列出所有可能投票的表。
SELECT
possible_votes.vote,
COUNT(votes.vote) AS cnt
FROM possible_votes
LEFT JOIN votes ON possible_votes.vote = votes.vote
GROUP BY possible_votes.vote
结果:
vote cnt 1 2 2 6 3 2 4 1 5 1 6 0
答案 2 :(得分:1)
检查GROUP BY的手册以及COUNT。
答案 3 :(得分:0)
SELECT vote, COUNT(*) as total
FROM votes
GROUP BY vote