SQL RANK () над PARTITION для объединенных таблиц

У меня есть две таблицы RSLTS и КОНТАКТЫ:

RSLTS

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

CONTACTSI»

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

Я пытаюсь создать отчет, который будет показывать, для каждогоCONTACT запись (C_ID), тоRANK() изRES_ID (отSCORE) вRSLTS таблица в своей группе (QRY_ID). Используя данные выше, это будет выглядеть так:

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

До сих пор я пробовал это, но он возвращает Rank = 1 для последней строки (и rank = 2 для второй, что также неверно)

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

ОБНОВИТЬ:SQLFiddle

Ответы на вопрос(2)

Ваш ответ на вопрос