Mysql查询统计整个table有多少个“1”或“2”?

Mysql query to count how many "1" or "2"s in the whole table?

我有一个 phpmyadmin 控制台 运行 一个投票数据库,用户可以在其中投票给 person1 或 person2。然后将条目放入带有用户 ID 和选择 ID 的 table 中。 user 列自动递增,choiceID 为 1 或 2,具体取决于他们投票的内容。这对我来说是全新的,我很惊讶我能做到这一点。任何人都可以解释如何进行查询以计算在任何给定时间我的整个 table 中有多少 1,s 和多少 2,s 吗?那将是非常棒的。

这里是 SQL-命令。您只需替换表名即可。

SELECT COUNT(*), choiceID FROM tablename GROUP BY choiceID;

您可以在查询中使用 "CASE WHEN" 个子句:

SELECT SUM( CASE WHEN choiceID = 1 THEN 1 ELSE 0 END ) AS choice_1, SUM( CASE WHEN choiceID = 2 THEN 1 ELSE 0 END ) AS choice_2 从 ... 哪里...

select count(*) from -tablename- where choiceID = '1'

或 '2'...取决于你想要什么 :P

SELECT choiceID, COUNT(userID) as number_of_votes FROM votes GROUP BY choiceID ORDER BY number_of_votes

给定一组这样的数据:

会产生这样的结果: