按语句分组 SQL
Posted
技术标签:
【中文标题】按语句分组 SQL【英文标题】:Group By Statement SQL 【发布时间】:2012-05-25 04:55:08 【问题描述】:这个 Select 语句给出了一个数字:
-相同的猫码
-相同的猫名
但使用不同的 Sales_Amt
Select p.CatCode, p.CatName, s.Sales_Amt
From A3_Dw_Prod p, A3_Dw_Sales s
Order By p.Dw_Prod_Id Desc;
我想使用求和函数来添加这些类别并将它们分组 当我使用 Sum 时出现错误
ORA-00979:不是 GROUP BY 表达式
Select p.CatCode, p.CatName, Sum(s.Sales_Amt)
From A3_Dw_Prod p, A3_Dw_Sales s
Where p.Dw_Prod_Id = s.Dw_Prod_Id
Group By p.CatCode, p.CatName
Order By p.Dw_Prod_Id Desc;
【问题讨论】:
【参考方案1】:我认为“p.Dw_Prod_Id Desc”列不在 group by 子句中。
【讨论】:
【参考方案2】:我认为问题的出现是因为您在 ORDER BY 子句中包含了“p.Dw_Prod_Id” 但是,未在主查询中选择此列,因此会产生问题 放入选择子句中的一列 ORDER BY(p.CatCode, p.CatName)
【讨论】:
【参考方案3】:您还必须将您在 group by OR order by 子句中使用的所有列放在选择中。
Select p.CatCode, p.CatName, p.Dw_Prod_Id, Sum(s.Sales_Amt)
From A3_Dw_Prod p, A3_Dw_Sales s
Where p.Dw_Prod_Id = s.Dw_Prod_Id
Group By p.CatCode, p.CatName,p.Dw_Prod_Id
Order By p.Dw_Prod_Id Desc, p.CatCode, p.CatName;
【讨论】:
以上是关于按语句分组 SQL的主要内容,如果未能解决你的问题,请参考以下文章