2016-06-01 10 views
0

Ich habe eine Datentabelle mit [YEAR], [WEEKNO], [VERSIONNO] Spalten (und andere).SQL max n Versionen für jede Woche eines jeden Jahres

Ich möchte die gesamte Zeile (jede Spalte) der letzten n Anzahl der VERSIONNO für jede WEEKNO in jedem Jahr ausgeben.

Was ist der beste Weg, es in SQL zu tun?

+1

Kennzeichnen Sie Ihre Frage mit der von Ihnen verwendeten Datenbank. –

+0

'max (versionno) Gruppe nach Jahr, schwachno' –

Antwort

2

würden Sie row_number() verwenden:

select t.* 
from (select t.*, 
      row_number() over (partition by year, weekno order by versionno desc) as seqnum 
     from t 
    ) t 
where seqnum <= n -- Your value goes here 

row_number() ist ANSI-Standard-Funktionalität, die von den meisten Datenbanken unterstützt.

Verwandte Themen