112. View the Exhibit and examine the structure of the PROMOTIONS table.
Evaluate the following SQL statement:
SQL>SELECT promo_category, AVG(promo_cost) Avg_Cost, AVG(promo_cost)*.25 Avg_Overhead
FROM promotions
WHERE UPPER(promo_category) IN ('TV', 'INTERNET','POST')
GROUP BY Avg_Cost
ORDER BY Avg_Overhead;
The above query generates an error on execution.
Which clause in the above SQL statement causes the error?
A. WHERE
B. SELECT
C. GROUP BY
D. ORDER BY
Answer: C
答案解析:
group by不能跟列别名
sh@TEST0924> SELECT promo_category, AVG(promo_cost) Avg_Cost, AVG(promo_cost)*.25 Avg_Overhead
2 FROM promotions
3 WHERE UPPER(promo_category) IN ('TV', 'INTERNET','POST')
4 GROUP BY Avg_Cost
5 ORDER BY Avg_Overhead;
GROUP BY Avg_Cost
*
ERROR at line 4:
ORA-00904: "AVG_COST": invalid identifier
SQL错误诊断

本文探讨了一条SQL查询语句中导致错误的原因。通过分析具体案例,指出GROUP BY子句使用不当是引发错误的主要因素,并强调了不能使用列别名作为GROUP BY的依据。
7052

被折叠的 条评论
为什么被折叠?



