2015-07-27 24 views
6

Załóżmy poniższej tabeliSQL - Specyficzna grupa przez

cash_id | cav_id | updated | status 
---------+--------+-------------+--------- 
    1  | 1 | 2014-10-14 | A 
    2  | 2 | 2014-10-14 | A 
    3  | 2 | 2014-10-16 | B 
    4  | 3 | 2014-10-17 | A 
    5  | 3 | 2014-10-17 | B 
    6  | 3 | 2014-10-18 | C 
    7  | 4 | 2014-10-18 | A 
    8  | 5 | 2014-10-19 | A 
    9  | 5 | 2014-10-19 | B 
    10  | 4 | 2014-10-20 | B 
    11  | 5 | 2014-10-21 | c 

Jak widać, powyższa tabela zawiera wiele wpisów dla cav_id, Jak mogę uzyskać Zmieniony (cav_id) rejestr każdej grupy cav_id?
znaczenie, powinienem dostać po rekordów: 1, 3, 6, 10, 11, ...

Odpowiedz

6

Spróbuj tego:

SELECT * 
FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY cav_id ORDER BY updated DESC) seq 
    FROM yourTable) dt 
WHERE seq = 1;