【发布时间】:2015-02-05 10:31:51
【问题描述】:
我在下面有一个表格,记录了用户对几个不同投票的响应;结果存储在响应列
CREATE TABLE IF NOT EXISTS `results` (
`poll_id` int(11) NOT NULL,
`response` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`ip_number` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
KEY `poll_result` (`poll_id`,`poll_answer`)
)
每个民意调查都有一个唯一 ID;例如,要求用户在两辆汽车之间进行选择的民意调查将有 poll_id 为 1,但在 响应列 中将有两个可能的汽车的响应,例如 range 或 ford。
SELECT poll_answer FROM `results` WHERE poll_id = 1 AND poll_answer = 'Range'
我现在需要起草一个 SQl 查询来确定以下内容;
用户总数和百分比,来自民意调查 1,他们选择 Range Rover 作为他们最喜欢的汽车
投票 1 中选择 ford 的用户总数和百分比。
回复投票 1 的用户总数**
我知道如何从一列中获取总数,但不知道如何从同一列中获取两个总数(使用两个不同的 where 子句);然后计算百分比。
SELECT Count(responce) FROM `results` WHERE poll_id = 1 AND response = 'range'
【问题讨论】:
-
查看 SUM、AVG 和 COUNT 聚合函数。
-
您需要 1 个查询全部还是需要 3 个不同的查询。
-
嗨 Ankit。感谢您的回复。我想在 1 个查询中完成所有操作。有可能吗?