Как найти максимальное значение в таблице получаемой из подзапроса
В подзапросе Я получаю таблицу с группированную по дате и для каждой этой даты представляется сумма продаж в эту дату, как теперь получить отсюда дату с максимальными суммарными продажами? предполагаю что нужно где то использовать WHERE или HAVING но все попытки были неудачными(
select *
from (
select sum(total) as sum, date
from sale
group by date) as t;
Есть такой вариант но я делаю один и тот же запрос дважды как это можно оптимизировать?
select date
from
(select sum(total) as sum, date
from sale
group by date) as t
where sum = (
select max(sum)
from (
select sum(total) as sum, date
from sale
group by date) as t);
Ответы (1 шт):
В MySQL это решается добавлением LIMIT в запрос и сортировкой данных в нужном направлении.
Так как вам нужно максимальное значение, то сортируем от большего к меньшему(DESC) и выводим первую запись(LIMIT 1)
select sum(total) as sumTotal, date
from sale
group by date
order by sumTotal desc
limit 1;
PS: Не используйте всевдонимы столбцов, которые совпадают с зарезервированными словами и функциями.
UPD из комментариев: Что бы вывести только дату
select date from (
select sum(total) as sumTotal, date
from sale
group by date
order by sumTotal desc
limit 1
);