排序后分组取每个分组的第一条数据

SELECT p1.* FROM
    (SELECT * FROM table p0
    WHERE p0.种类编号 IN (10066656,10115244) 
    ORDER BY p0.价格 ASC,p0.主键id DESC
    LIMIT 1000000
    ) p1
GROUP BY p1.种类编号;

  因为group by无法放到order by之后执行,所以需要创建临时表p1,limit 100000是取前100000条数据,因为不加limit临时表的排序不会生效,100000是乱写的,

是多少都行,只要足够取出要查询的数据条数。

  参考 https://www.cnblogs.com/w1441639547/p/11199154.html

猜你喜欢

转载自www.cnblogs.com/darkclouds/p/12175682.html
今日推荐