У меня есть таблицы:
Отзыв
- Product_ID (FK для Product_ID в таблице продуктов)
- Рекомендация
- Качество(FK для Score_ID в таблице Score)
- Значение (FK для Score_ID в таблице Score)
Score
- Score_ID
- Значение
- Описание
Продукт
Подкатегория
Product Подкатегория
- Product_ID(FK для Product_ID в таблице Product)
- SubCat_ID (FK для SubCat_ID в таблице Subcategory)
Моя цель - создать запрос, который возвращает среднее качество и стоимость продукта, которыйнаходится в подкатегории '4K Ultra HD TVs', и цена составляет более $ 4000.Я не могу просто вернуть Score_ID, мне нужно вернуть среднее значение (это поле в таблице Score).
Я работал над этим часами, и вот к чему я пришелс.Тем не менее, я не знаю, как исправить ошибку.Я считаю, что это как-то связано с функцией AVG в подзапросе, или с тем, как я использовал SELECT.
COLUMN PID FORMAT 999
COLUMN AVG_QUALITY FORMAT 99999999999
COLUMN AVG_VALUE FORMAT 99999999999
SELECT R.PRODUCT_ID AS PID,
AVG_QUALITY = (SELECT AVG(SQU.SCORE_VALUE)
FROM SCORE SQU
INNER JOIN SCORE SQU ON SQU.SCORE_ID = R.SCORE_QUALITY
WHERE R.SCORE_QUALITY = SQU.SCORE_ID),
AVG_VALUE = (SELECT AVG(SVA.SCORE_VALUE)
FROM SCORE SVA
INNER JOIN SCORE SVA ON SVA.SCORE_ID = R.SCORE_VALUE
WHERE R.SCORE_VALUE = SVA.SCORE_ID)
FROM REVIEW R
INNER JOIN PRODUCT P ON P.PRODUCT_ID = R.PRODUCT_ID
INNER JOIN PRODUCTSUBCATEGORY PS ON PS.PRODUCT_ID = P.PRODUCT_ID
INNER JOIN SUBCATEGORY S ON S.SUBCAT_ID = PS.SUBCAT_ID
WHERE S.NAME = '4K Ultra HD TVs'
AND P.PRICE > 4000;
AVG_QUALITY = (SELECT AVG(SQU.SCORE_VALUE)
*
ERROR at line 2:
ORA-00923: FROM keyword not found where expected