2016-01-27 4 views
2

мне нужна помощь: этот запрос работает отличноMySql группы и фильтр Результаты: ошибка

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; 

Я получаю эту ошибку

ERROR 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «где nb> 0» по строке 6

Что не так в моем запросе?

ответ

2

условия на сгруппированных функции должны быть введены в 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; 
4

Сортировка всегда должны быть последними

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 
+0

Я получаю ERROR 1054 (42S22): Неизвестный столбец 'нб' в «, где статья "... – user2129506

+0

Забыл, что его совокупность! отредактированный –

Смежные вопросы