【发布时间】:2018-09-23 06:39:09
【问题描述】:
Only_full_group_by 模式已启用。
我的查询是关于 2 个表的表连接 - 如果我只是使用以下查询获取数据 - 它可以正常工作并显示正确的记录:
select p.product_category, m.profit
from market_fact m inner join
prod_dimen p
on m.prod_id = p.prod_id;`
但如果我使用下面的利润描述按顺序分组,它不会给出。记录正确且相同 - 但没有给出正确的顺序,甚至利润值也不相同
select p.product_category, m.profit
from market_fact m inner join
prod_dimen p
on m.prod_id = p.prod_id
order by m.Profit desc;
如果我使用按产品类别分组并按利润排序 -
select p.product_category, m.profit
from market_fact m inner join
prod_dimen p
on m.prod_id = p.prod_id
group by p.Product_Category
order by m.Profit desc;
然后 - 它抛出错误: 错误代码:1055。SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“superstoresdb.m.Profit”;这与 sql_mode=only_full_group_by 不兼容
如何解决这个问题?
【问题讨论】:
-
您需要提供样本数据和结果,以便我们了解问题所在。
标签: mysql sql sorting group-by sql-order-by