Det här kan vara ett dumt svar, förlåt om det är det.
Är radnumren nollbaserade? Vad händer om du ändrar where-satsen till:
WHERE rn = 0
?
EDIT:Jag märkte också att det kan saknas ett "AS" i raden:
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) rn
Ska det vara:
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) AS rn