@viktorross

Как посчитать количество строк с group by'ом?

как выполнить подсчет строк с join'ом? в таблице class_p совпадений может быть множество, в моем примере естественно выводится все образно говоря 20 строк и в каждом поле count значение равно 2, мне нужно чтобы выводом была 1 строка со значением в поле count - 20. как этого добиться?

select count(*) 
from class_a 
left join `class_p` 
on `class_a`.id = `class_p`.p_id 
where class_a.cat_id=1 
and (`caption`,`value`) in (('type','1'), ('type_2','2')) 
GROUP BY class_a.id 
HAVING COUNT(DISTINCT caption, value) = 2;
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
vhood
@vhood
Не забывайте отмечать решения
SELECT COUNT(1) FROM (
    SELECT class_a.id
    FROM class_a 
    LEFT JOIN `class_p` 
    ON `class_a`.id = `class_p`.p_id
    WHERE class_a.cat_id = 1
    AND (`caption`,`value`) IN (('type','1'), ('type_2','2')) 
    GROUP BY class_a.id 
    HAVING COUNT(DISTINCT caption, value) = 2;
) AS tmp
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы