2016-10-26 9 views
1

У меня есть таблица, как этотMySQL получить последние значения сгруппированы

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

может кто-то помочь plz?

+0

См http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems- к-я-к-быть-а-простейшими SQL-запрос – Strawberry

ответ

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; 
1

В случае, если вы имеете в виду последний типа типа с наибольшим значением, запрос просто в этом, как

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

SELECT DISTINCT t1.orderid (выбрать макс (типа) из таблицы, где OrderId = t1.orderid) из таблицы t1

Попробуйте