SQL查询 - 选择max,其中count大于value

时间:2014-03-17 14:41:54

标签: mysql sql count

我有两个具有以下结构的表:

问题表

id int, 
question text, 
answer text, 
level int

进度表

qid int, 
attempts int, 
completed boolean (qid means question id)

现在我的问题是如何构建一个查询,选择正确问题计数大于30的最大级别。

我创建了这个查询,但它不起作用,我不知道为什么。

SELECT MAX(Questions.level) 
FROM Questions, Progress 
WHERE Questions.id = Progress.qid AND Progress.completed = 1 
GROUP BY  Questions.id, Questions.level 
Having COUNT(*) >= 30

我想在一个查询中使用它,因为我怀疑这是可能的,并且可能是查询它的最“优化”方式。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

这种结构可行。你可以弄清楚细节。

select max(something) maxvalue
from SomeTables
join (select id, count(*) records
from ATable
group by id) temp on ATable.id = temp.id
where records >= 30