select c.Cust_id, Customer_Name, round(sum(Sales)) as Total_Sales
from market_fact_full m
inner join cust_dimen c using (Cust_id)
group by c.Cust_id
order by Sales desc;
另外,当我添加所有非聚合列时,仍然会得到错误:
select c.Cust_id, Customer_Name, round(sum(Sales)) as Total_Sales
from market_fact_full m
inner join cust_dimen c using (Cust_id)
group by c.Cust_id, Customer_Name
order by Sales desc;
错误代码:1055。order by子句的表达式#1不在group by子句中,并且包含未聚合的列'market_star_schema.m.sales',该列在功能上不依赖于group by子句中的列;这与sql\u mode=only\u full\u group by不兼容
1条答案
按热度按时间ukxgm1gy1#
那是因为你想
order by
列sales
-但由于您是按客户分组的,因此有多个sales
所以数据库不能很好地判断它应该做什么。大概,您希望按客户的总销售额来订购。为此,可以参考中定义的别名
from
条款: