【发布时间】:2017-04-24 21:58:06
【问题描述】:
我是 SQL 新手。谁能帮我弄清楚为什么“Group By”表达式在这个 sql 查询中不起作用?我收到此错误
ERROR at line 3:
ORA-00979: not a GROUP BY expression
我使用的代码是
CREATE OR REPLACE VIEW CUSTOMER_LINE_ITEM AS
SELECT CUSTOMER_ORDER_CART_INFO.loginName,CUSTOMER_ORDER_CART_INFO.FirstName,
CUSTOMER_ORDER_CART_INFO.LastName,CUSTOMER_ORDER_CART_INFO.orderCartID,(lineItems.orderPrice*lineItems.qtyOrdered) AS TOTAL_ORDER
FROM CUSTOMER_ORDER_CART_INFO
INNER JOIN lineItems
ON CUSTOMER_ORDER_CART_INFO.orderCartID = lineItems.orderCartID
GROUP BY CUSTOMER_ORDER_CART_INFO.loginName,CUSTOMER_ORDER_CART_INFO.FirstName,
CUSTOMER_ORDER_CART_INFO.LastName,CUSTOMER_ORDER_CART_INFO.orderCartID
ORDER BY orderCartID;
如果没有 Group By 表达式,我会生成这个视图。我认为 group by 表达式应该只删除重复项,然后给我不同订单购物车 ID 的结果。谁能帮我理解我在这里做错了什么? VIEW of CUSTOMER_LINE_ITEM without 'group by'
【问题讨论】:
-
我建议将 TOTAL_ORDER 添加到 GROUP BY 表达式中,因为我认为此错误表明并非选择列表中的所有列也都在 group by 表达式中 - 但尚未尝试过。
-
你试过searching吗?
-
@Aleksej。这不是一个重复的问题。我在堆栈溢出中搜索 Group by expression ,但找不到答案。解决方案也与您建议的重复问题不同。
-
您接受的答案是“所有列都被选为按子句分组”;我链接的问题的公认答案是“您必须将 SELECT 的所有列都放在 GROUP BY 中”,这完全一样:这是一个重复的问题