需求:查询订单中出单最多的商品名
当时写的sql:
SELECT
max(t.num),
t.NAME,
t.spu
FROM
(
SELECT
count(1) AS num,
NAME,
spu
FROM
user_order_info
WHERE
user_id = 6
GROUP BY
spu
) t
内部查询结果为这个,这时还是我想要的,但是整体查询如下:
这就乱了,虽然也可以查询出最大num,但是数值和其他自动根本对应不上,因为group by返回分组后的组内第一条数据信息,max函数对应的是最大数量。
解决方法: 按max的量进行倒序排列,输出第一列的值就是想要的值。
但是还有一个问题就是如果统计出的单量一致的情况,这两条数据就会随机出
解决方法就是在排序时多加一个排序字段,让其固定