Questa potrebbe essere una risposta stupida, ti prego di perdonare se lo è.
I numeri di riga sono a base zero? Cosa succede se modifichi la clausola where in:
WHERE rn = 0
?
EDIT:ho anche notato che potrebbe esserci un "AS" mancante nella riga:
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) rn
Dovrebbe essere:
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) AS rn