Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.93.207] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Приветствую!
Что-то временной перерывчег пользования SQL меня притупил. Нужно было челу помочь с запросом - я помог. Но решение какое-то костыльное получилось. Просьба исправить. Вот запрос, который выводит нужную выборку: SELECT P.ProductName, P.Price FROM Products AS P, ( SELECT AVG(T.Price) AS PriceA FROM Products AS T ) AS A WHERE P.Price > A.PriceA AND P.Price < 33 ORDER BY P.Price ASC; Чуйка подсказывает, что как-то костыльно выглядит. Можно красивше сделать? |
Сообщ.
#2
,
|
|
|
В чём костыль-то?
Ну и - такие вещи как бы диалекто-зависимы, так что или вопрос задавай в соотв. разделе, или указывай версию СУБД. |
Сообщ.
#3
,
|
|
|
Цитата Akina @ указывай версию СУБД MySQL 5.6 Добавлено Цитата Akina @ В чём костыль-то? Без вложенного селекта никак? Через HAVING как-то? |
Сообщ.
#4
,
|
|
|
Цитата JoeUser @ Через HAVING как-то? Нельзя. Надо сначала просканировать всю таблицу дла подсчета среднего значения, а потом использовать ето значение для второго просмотра таблицы. |
Сообщ.
#5
,
|
|
|
Цитата MIF @ Нельзя. Лан, вопрос закрываю. Да, именно так. |