У меня есть каталог таблиц, и я должен найти список поставщиков, которые взимают за какую-то часть больше, чем средняя стоимость этой части (в среднем по всем поставщикам, поставляющим эту часть)
Мое решение работаетЕдинственное, с чем у меня проблема, это то, как я хочу это представить.Я хочу иметь один столбец в результате, который показывает стоимость, усредненную по всем поставщикам, которые поставляют эту часть.Это должен быть результат:
sid pid cost avg_cost
----- ----- ------ ----------
s1 p8 11.70 10.71
s2 p3 0.55 0.52
s3 p8 12.50 10.71
И вот мой результат:
sid pid cost
----- ----- ------
s1 p8 11.70
s2 p3 0.55
s3 p8 12.50
Вот что я сделал:
SELECT DISTINCT c.sid, c.pid, c.cost
FROM catalog AS c
WHERE c.cost > (SELECT avg(c1.cost) AS avg_cost
FROM catalog c1
WHERE c1.pid=c.pid)
GROUP BY c.sid, c.pid, c.cost;