我有一张这样的桌子:
CREATE TABLE IF NOT EXISTS `answered` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`question_id` int(11) NOT NULL,
`correct` tinyint(1) NOT NULL DEFAULT '0',
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
和
CREATE TABLE IF NOT EXISTS `questions` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
);
我需要选择正确和错误答案的数量,但是:如果同一个问题有多个答案(“已回答”中可能有更多具有相同 question_id 的条目)只有最新的(由“answered.created”确定)才算。
结果结构应该是这样的:
correct count
0 1
1 3
小提琴: http ://sqlfiddle.com/#!2/11073
我的试用:
SELECT a.correct, count(*) as count
FROM answered a
JOIN questions q ON a.question_id = q.id
GROUP BY correct
这有效,但不止一次计算相同的 question_ids。