Cela pourrait être une réponse idiote, veuillez pardonner si c'est le cas.
Les numéros de ligne sont-ils basés sur zéro ? Que se passe-t-il si vous remplacez la clause where par :
WHERE rn = 0
?
EDIT :j'ai également remarqué qu'il pouvait y avoir un "AS" manquant dans la ligne :
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) rn
Devrait-il être :
SELECT * , ROW_NUMBER() OVER (PARTITION BY Col1 ORDER BY Col5 ASC, Col3 ASC) AS rn