Mit ROW_NUMBER in CTE

Ich versuche für einen Allgemeinen Tabellenausdruck mit einer ROW_NUMBER-Funktion.

Abfrage:

with Demo as
(
select *, ROW_NUMBER() over (partition by GID, MID order by MMID) as ROWNUMBER  from Table1 where DateEntered > '2015-06-13 00:00:00.000'
)
select  * from Demo 

Hier, das Ergebnis bekomme ich

GID   MID   ROWNUMBER
1      1      1
1      2      1
1      2      2
1      2      3 
2      1      1
2      2      1
2      2      2
2      3      5
2      4      4

Nun, ich will alle Zeilen, in denen die Kombination von GID,MID, max Zeilennummer Wert. Aber eine Bedingung ist hier, dass für diese Zeilen, die Kombination von GID,MID sollte auch 1.

In einfachen Worten, bekomme ich die Zeilen mit max Zeilennummer Wert, wenn diese Kombination von gid,mid rownumber=1.

Die Ausgabe, die ich mir Wünsche ist

GID   MID   ROWNUMBER
1      1      1
1      2      3 
2      1      1
2      2      2

Ich hoffe, ich habe es nicht geschafft-Komplex. Kann jemand pls informieren Sie mich, wie dies zu tun ?

  • "hol mir die Zeilen mit max row number-Wert, wenn diese Kombination hat rownumber = 1"?, wie kann das sein, es sei denn, jede Zeile, die Nummer 1 ist?
  • Im Beispiel oben gegebenen Kombination von GID,MID(e.g GID=1, MITTE =2) hat ROWNUMBER ist 1,2 3 . Hier möchte ich die Zeile mit ROWNUMBER = 3 .
  • partition by GID, MID order by MID geben wollte beliebigen Reihe von zahlen, weil die Bestellung Wert wird das gleiche für jedes Element der partition.
  • Um von MMID. Es ist anders, als in der MITTE.
InformationsquelleAutor devammmm | 2015-08-17
Schreibe einen Kommentar