HAVING SUM(z.Количество_порций) = (SELECT MAX (кол)
FROM (SELECT SUM(Количество_порций) as кол
FROM Заказы
GROUP BY Блюдо) m)
UNION ALL
SELECT 'Наименее популярное блюдо', b.Блюдо, SUM(z.Количество_порций)
FROM Блюда b JOIN Заказы z ON b.ID_ Блюдо = z. Блюдо
GROUP BY b. Блюдо
HAVING SUM(z.Количество_порций) = (SELECT MIN (кол)
FROM ( SELECT SUM(Количество_порций) as кол
FROM Заказы
GROUP BY Блюдо) m);
| Результат
| |
| | Блюдо
| |
| Наиболее популярное блюдо
| Салат летний
|
|
| Наименее популярное блюдо
| Драчена
|
|
| Наименее популярное блюдо
| Рулет с яблоками
|
|
Использование UNION с ORDER BY.
При построении запроса с UNION, часто необходимо чтобы данные выводились в каком- то особом порядке. Для этого необходимо использовать ORDER BY(один раз и в конце последнего предложения SELECT), чтобы упорядочить вывод из объединения, точно так же как это делается в индивидуальных запросах. Давайте пересмотрим наш последний пример, чтобы упорядочить строки по названиям блюд.
Пример 41.
SELECT 'Наиболее популярное блюдо' , b.Блюдо, SUM(z.Количество_порций)
FROM Блюда b JOIN Заказы z ON b.ID_ Блюдо = z. Блюдо
GROUP BY b. Блюдо
HAVING SUM(z.Количество_порций) = (SELECT MAX (кол)
FROM (SELECT SUM(Количество_порций) as кол
FROM Заказы
GROUP BY Блюдо) m)
UNION ALL