获得总计数和组数在MySQL
问题描述:
我很好奇,看看是否有其他选项来获得总计数和组数在一个查询。
使用子查询中去,以获得这一结果的方式:
TOTAL OPTIONS OPTION_COUNT
4 A 3
4 B 1
表模式:
CREATE TABLE poll
(`poll_id` int,`user_id` int,`options` varchar(30))
;
INSERT INTO poll
(`poll_id`,`user_id`,`options`)
VALUES
(1,1,'A'),
(2,2,'A'),
(3,3,'B'),
(4,4,'A')
;
查询:
SELECT (SELECT Count(*) AS total FROM poll)AS total
,options,option_count
FROM
(
SELECT options,Count(options) AS option_count
FROM poll
GROUP BY options
)p
GROUP BY options
答
有一种方法可以做到这一点使用group by rollup
http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html
SELECT options,Count(options) AS option_count
FROM poll
GROUP BY options
WITH ROLLUP
答
它不会有可能没有子查询,但可以写一个不同的和更简单的方式,如:
从轮询GROUP BY选项中选择选项,计数(选项),(SELECT Count(*)FROM poll);