mysql获取最后的值分组

时间:2016-10-26 14:43:30

标签: mysql sql limit

我有一张这样的表

id  orderid type  date
20  831     1   2016-10-26 15:09:25
22  1410    1   2016-10-26 15:09:27
23  1779    1   2016-10-10 15:09:29
26  1779    2   2016-10-10 15:09:29
24  1809    1   2016-10-26 15:09:30

我希望得到最后一种类型的每个订单。因此,订单1779应该是类型2

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

如果你的意思是最后一个类型是具有最大值的类型,那么查询就像这样简单

SELECT orderid, 
    MAX(type) AS last_type
FROM table_name
GROUP BY orderid;

答案 1 :(得分:0)

SELECT id,orderid,type,date 
  FROM
     (
       SELECT *,
              ROW_NUMBER() OVER ( PARTITION BY orderid ORDER BY type DESC ) AS rn
         FROM yourtable
      ) 
 WHERE rn = 1;

答案 2 :(得分:0)

从表t1中选择distinct t1.orderid,(从表中选择max(type),其中orderid = t1.orderid)

试试这个