Я пытаюсь написать запрос, чтобы возвращать все продукты с более высокими средними продажами в долларах. Соответствующие таблицы и столбцы:Postgres SQL вычисляет среднее значение расчетных итогов
- ПРОДУКТЫ: prod_id: целое число, цена: десятичные
- OrderLines: prod_id: целое число, количество: целое
я могу написать подзапрос, получает долларовые продажи для каждого продукта, но у меня возникают проблемы с применением средней функции для этого подзапроса. Все, что я пытаюсь, возвращает синтаксическую ошибку. Ниже то, что я думал, что должен быть близок к ответу:
select avg(sum) as avg_sales
from (
select sum(b.quantity * a.price) as total_sales
from products a, orderlines b
where a.prod_id = b.prod_id
group by a.prod_id
);
Когда я пытаюсь это, я получаю:
ERROR: subquery in FROM must have an alias.
Я не понимаю этого, но я новичок в Postgres. Во всяком случае, добавление псевдонима дает мне:
select avg(totals) as avg_sales
from (
select sum(b.quantity * a.price) as total_sales
from products a, orderlines b
where a.prod_id = b.prod_id group by a.prod_id
) as totals;
Когда я пытаюсь это, я получаю: Ошибка: функция ср (запись) не существует
Я понимаю, что приведенный выше код просто получить общий средний объем продаж. Если я смогу получить средние продажи, тогда должно быть легко получить продукты, которые выше среднего.
Я думаю [этот вопрос] (http://stackoverflow.com/questions/38237244/how-do-calculate-the-average-when-the-numbers-are-grouped) поможет вы.Как я думаю, я спросил то же самое, что и вы. – MageeWorld
«Все, что я пытаюсь вернуть синтаксическую ошибку», основополагающий смысл, чтобы опубликовать точную ошибку – e4c5
Это помогает (я стараюсь быть более полезным и менее грубым, поскольку большинство пользователей, похоже, для новичков), чтобы выписать код, который работает , Если вы ищете более высокие, чем средние продажи в долларах, некоторые имена столбцов отсутствуют. Кроме того, как вы определяете свою среднюю продажу в долларах? – MageeWorld