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
给定一组这样的数据:
会产生这样的结果:
我有一个 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
给定一组这样的数据:
会产生这样的结果: