为了账号安全,请及时绑定邮箱和手机立即绑定

GROUP BY / SQL中的聚合函数混淆

GROUP BY / SQL中的聚合函数混淆

慕码人8056858 2019-10-11 11:14:52
我需要一些帮助来理顺一些问题,我知道这是一个非常简单的问题,但这在SQL中使我有些困惑。此SQL查询在Oracle中引发“不是GROUP BY表达式”错误。我知道为什么,因为我知道一旦按元组的属性进行分组,就无法再访问任何其他属性。SELECT * FROM order_details GROUP BY order_no但是这个确实有效SELECT SUM(order_price)FROM order_detailsGROUP BY order_no只是为了具体说明我的理解。...假设每个订单的order_details中有多个元组,一旦我根据order_no对元组进行分组,我仍然可以访问组中每个元组的order_price属性,但仅使用聚合函数?换句话说,聚合函数在SELECT子句中使用时能够深入到组中以查看“隐藏”属性,在其中简单地使用“ SELECT order_no”将引发错误?
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

要使用group by子句,您必须提及select语句中的所有列到group by子句中,而不是聚合函数中的列。


为此,您可以使用partition by by子句来代替group by,而只能使用一个端口将其作为group by。


您也可以将其划分为1


查看完整回答
反对 回复 2019-10-11
?
忽然笑

TA贡献1806条经验 获得超5个赞

SELECT * 

FROM order_details 

GROUP BY order_no

在上面的查询中,您正在选择所有列,因为它会引发错误,而不是按诸如..分组。以避免您必须提及所有列,无论在select语句中所有列都必须在group by子句中。


 SELECT * 

    FROM order_details 

    GROUP BY order_no,order_details,etc

等等,这意味着order_details表中的所有列。


查看完整回答
反对 回复 2019-10-11
  • 3 回答
  • 0 关注
  • 430 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信