2010-04-05 61 views
2

我想做一个小小的PHP民意调查。脚本应询问用户只能用0-999的数字回答的问题。按下提交按钮后,数据应该存储到MySQL中。所以我只想知道有多少用户选择了相同的数字(百分比)。这是一个简单的民意调查,但我不希望显示任何输出。Php/Mysql简单调查

+0

取决于你正在尝试做的,它可能是数为范围,如(0-100)更加有用组,(100-200 )等等,而不是单独计算每个数字。 – 2010-04-05 11:10:22

+2

有什么问题? – 2010-04-07 09:05:53

回答

4

您需要使用COUNT和GROUP BY:

SELECT 
    number, 
    COUNT(number) * 100/(SELECT COUNT(*) FROM table1) AS percent 
FROM table1 
GROUP BY number 
ORDER BY COUNT(number) DESC 

结果:

number percent 
2  50.0000 
3  30.0000 
1  20.0000 

测试数据:

CREATE TABLE table1 (number INT NOT NULL); 
INSERT INTO table1 (number) VALUES (1),(1),(2),(2),(2),(2),(2),(3),(3),(3); 
+0

@标记它是完美的。 但是如果数字4有零计数会发生什么?结果集中的数字为零或不是4? – Salil 2010-04-05 11:16:23

+0

@Salil如果没有对特定号码进行投票,它将不会出现在结果集中。 – Petesh 2010-04-05 11:41:43

+0

它有什么办法让我得到默认计数= 0如果没有投票存在? – Salil 2010-04-05 12:05:21