【发布时间】:2016-10-30 21:21:09
【问题描述】:
我正在尝试运行以下代码:
SELECT BOOK.BOOK_NUM AS "Book Number",
BOOK.BOOK_TITLE AS "Book Title",
BOOK.BOOK_SUBJECT AS "BOOK SUBJECT",
ROUND(AVG(BOOK.BOOK_COST),2) as "Subject Avg",
(BOOK_COST - ROUND(AVG(BOOK.BOOK_COST),2)) AS "COST DIFFERENCE"
FROM BOOK
GROUP BY BOOK.BOOK_NUM, BOOK.BOOK_TITLE, BOOK.BOOK_SUBJECT
但是,当我这样做时,我得到一个错误
ORA-00979: 不是 GROUP BY 表达式
删除后似乎没有出现该问题:
(BOOK_COST - ROUND(AVG(BOOK.BOOK_COST),2)) AS "COST DIFFERENCE"
来自select 声明。
我知道 GROUP BY 语句需要 select 语句中所有不是函数的值,我认为我的满足了这个要求。
任何帮助将不胜感激!
【问题讨论】:
-
你的 dbms 是什么?
-
@rory.ap “ORA”可能代表什么? :)
-
您期望成本差异列返回什么?记住您返回的是每个标题的平均价格
-
@obe -- 我的意思是,OP 需要适当地标记问题。
-
您需要在 GROUP BY 中包含 BOOK_COST。