SQL RANK () nad PARTITION na połączonych tabelach

Mam dwie tabele RSLTS i CONTACTS:

RSLTS

 QRY_ID  |  RES_ID  |  SCORE
-----------------------------
   A     |    1     |    15
   A     |    2     |    32
   A     |    3     |    29
   C     |    7     |    61
   C     |    9     |    30

ŁĄCZNOŚĆ

 C_ID  |  QRY_ID  |  RES_ID
----------------------------
  1    |    A     |    2
  2    |    A     |    1
  3    |    C     |    9

Próbuję stworzyć raport, który będzie pokazywał dla każdegoKONTAKT rekord (C_ID)RANK() zRES_ID (przezSCORE) wRSLTS stół w swojej grupie (QRY_ID). Używając powyższych danych, wyglądałoby to tak:

 C_ID  |  QRY_ID  |  RES_ID  |  SCORE  |  Rank
-----------------------------------------------
  1    |    A     |    2     |    32   |   1
  2    |    A     |    1     |    15   |   3
  3    |    C     |    9     |    30   |   2

Do tej pory próbowałem tego, ale zwraca on Rank = 1 dla ostatniego wiersza (i rangę = 2 dla drugiego, który również jest błędny)

SELECT
    C.*
    ,R.SCORE
    ,RANK() OVER (PARTITION BY R.QRY_ID ORDER BY R.SCORE DESC)
FROM CONTACTS C LEFT JOIN RSLTS R
ON C.RES_ID = R.RES_ID
AND C.QRY_ID = R.QRY_ID

AKTUALIZACJA:SQLFiddle

questionAnswers(2)

yourAnswerToTheQuestion