提问
我需要从一个表中取pid最多的商品 和商品名称,但是由于数据库默认是开启了sql_mode=only_full_group_by的数据库,在使用group by时就会报错,数据库我又没有权限 所以 在执行sql的时候出现了
旧版本的mysql没限制,让你为所欲为,像我们用oracle写这种sql就是报错,新版的已经也这么做了,group by查询非分组的字段时,需要使用聚合函数才能可以查询出接过来,不然直接sql报错,你可以用子查询的方式,就可以解决这个问题了
同时根据 p_id ,p_name分组不行么,p_id,p_name不是一一对应?
SELECT p_id ,p_name,count( p_id ) As count FROM v_order_item_info GROUP BY p_id ,p_name ORDER EY count DEsc limt 5;
你这个SQL语句写错了吧 p_name没有聚合
select p_id,p_name,count(p_id) as count
from v_order_item_info
group by p_id ,p_name
order by count(p_id) desc
limit 5;