Mysql SQL查询-选择计数大于值的最大值
我有两张表,结构如下: 问题表Mysql SQL查询-选择计数大于值的最大值,mysql,sql,count,Mysql,Sql,Count,我有两张表,结构如下: 问题表 进度表 现在我的问题是如何构造一个查询,选择正确问题数大于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的最大级别 我创建了这个查询,但它不起作用,我不知道为什么
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
我想把它放在一个查询中,因为我怀疑这是可能的,而且可能是查询它的最“优化”的方式。谢谢你的帮助 这种构造将起作用。你可以弄清楚细节
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
一步一步地做,而不是把两张桌子连在一起。在内部选择中,查找正确回答了30次的问题(即问题ID)。在外部选择中,找到相应的级别并获得最大值:
select max(level)
from questions
where id in
(
select qid
from progress
where completed = 1
group by qid
having count(*) >= 30
);
有必要加入吗?难道你不能通过分组来获得结果吗?
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
select max(level)
from questions
where id in
(
select qid
from progress
where completed = 1
group by qid
having count(*) >= 30
);