MySql组和筛选结果:错误

MySql组和筛选结果:错误,mysql,group-by,Mysql,Group By,我需要帮助: 这个查询非常有效 select count(distinct(a.mat)),count(distinct(c.mail)) as nb from aca as a left join c on c.mat=a.mat group by a.mat order by nb desc; 但是当我想过滤的时候 select count(distinct(a.mat)),count(distinct(c.mail)) as nb from aca as a left join

我需要帮助: 这个查询非常有效

select count(distinct(a.mat)),count(distinct(c.mail)) as nb 
from aca as a 
left join c on c.mat=a.mat 
group by a.mat
order by nb desc;
但是当我想过滤的时候

select count(distinct(a.mat)),count(distinct(c.mail)) as nb 
from aca as a 
left join c on c.mat=a.mat 
group by a.mat
order by nb desc
where nb > 0;
我得到这个错误

错误1064(42000):您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第6行“where nb>0”附近要使用的正确语法


我的查询出了什么问题?

Order by应该始终是最后一个

select count(distinct(a.mat)),count(distinct(c.mail)) as nb 
from aca as a 
left join c on c.mat=a.mat 
group by a.mat
having nb > 0
order by nb desc

分组函数的条件应放在HAVING子句中:

select count(distinct(a.mat)),count(distinct(c.mail)) as nb 
from aca as a 
left join c on c.mat=a.mat 
group by a.mat
having nb > 0
order by nb desc;

忘了它的总量!编辑