моделей любых типов, имеющих самую высокую цену по всей имеющейся в базе данных продукции.
почему то по основной базе прошло, а по проверочной - нет (меньше на 2 записи).
Вот мой запрос:
WITH cte AS (
select model, price from pc
union
select model, price from laptop
union
select model, price from printer
)
select model from cte
where price >= ALL (select price from cte)
Что может быть не так?
upd: так сработало:
where price=(select max(price) from cte)
И встал вопрос, чем where price >= ALL (select price from cte) плох как поиск максимального элемента.
Вот этим: WITH cte(model, price) AS ( SELECT 1, 1 UNION ALL SELECT 2, NULL UNION ALL SELECT 3, 3 ) SELECT model FROM cte WHERE price >= ALL (SELECT price FROM cte); См., например: https://www.postgresql.org/docs/current/functions-subquery.html#FUNCTIONS-SUBQUERY-ALL Вообще, у всех этих IN/ANY/SOME/ALL в SQL неудачная семантика, IMNSHO — все только "накалываются" на эти NULL-ы, а пользы никакой нет.
Обсуждают сегодня