我有两个具有以下结构的表:
问题表
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
我想在一个查询中使用它,因为我怀疑这是可能的,并且可能是查询它的最“优化”方式。谢谢你的帮助!
答案 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