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
);