Привет.
И так, есть таблица вида:
status_id, created_at, close_at
INT datetime datetime
Необходимо посчитать количество всех записей по дате создания created_at, посчитать по дате закрытия close_at, где статус равен status_id = 142 и всё сгруппировать по дате создания created_at при этом, где год создания больше 2017.
Считаем все :
SELECT COUNT(id) as `all`, DATE(l.created_at) as `date`
FROM table_1 l
WHERE YEAR(l.created_at) > '2017' GROUP BY `date`;
Всё отлично, данные корректны - теперь пытаюсь сджойнить сюда второе условие:
SELECT COUNT(id) as `all`, DATE(l.created_at) as `date`, s.success
FROM table_1 l
LEFT OUTER JOIN (SELECT SUM(1) as success, close_at FROM table_1 WHERE status_id = 142 GROUP BY close_at) s ON DATE(s.close_at) = DATE(l.created_at)
WHERE YEAR(l.created_at) > '2017' GROUP BY `date`, s.success;
Очень долгий запрос более 10 секунд и данные не корректны.
На самом деле написал какую-то дичь и не совсем понимаю, как такое можно провернуть в один запрос.