Как найти максимум от сумм с группировкой?

Существуют три таблицы (образно):
1) checks (id, id_server, online, date_check, ...); // Проверки
2) servers(id, id_project, title, ...); // Сервера
3) projects(id, title, ...). // Проекты

Суть проблемы в том, что для отображения статистики на сайте, мне нужно выводить инфу по текущему месяцу в график, в котором необходимо показать максимальный онлайн проекта ( который должен складываться из максимального онлайна серверов проекта) за каждый день месяца. В день выполняется несколько проверок. Ломаю голову над запросом, пробовал через вложенные, но так и ни к чему не пришел.
Кратко: получить сумму максимального онлайна серверов одного проекта, сгруппировав по дням.
  • Вопрос задан
  • 931 просмотр
Решения вопроса 1
@ReenExe
SELECT `projects`.`id`, `projects`.`title`, SUM(`CHECK_MAX`.`max_online`)
FROM `projects`
INNER JOIN `servers` ON (`servers`.`id_project` = `projects`.`id`)
INNER JOIN (
	SELECT
		`checks`.`id_server`,
		`checks`.`date_check`,
		MAX(`checks`.`online`) AS `max_online`
	FROM `checks`
	GROUP BY `checks`.`id_server`, `checks`.`date_check`
) AS `CHECK_MAX` ON (`CHECK_MAX`.`id_server` = `servers`.`id`)
GROUP BY `projects`.`id`, `CHECK_MAX`.`date_check`;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы