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;
忘了它的总量!编辑