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

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

posted @ 2020-01-10 13:27  darkclouds  阅读(4018)  评论(0编辑  收藏  举报