У меня есть набор данных, который в основном говорит вам, сколько купонов было отправлено для каждого розничного торговца, и сколько ответили, их соответствующий коэффициент ответа для каждого дилера и для каждого купона.
Я рассчитываю ранжирование каждого купона в каждом дилере на основе коэффициента отклика, и если два купона имели одинаковый коэффициент отклика, то мне нужно назначить лучший ранг для купонов, которые были отправлены чаще всего
Это скрипт, который я пробовал, но он неправильно ранжируется
SELECT
DealerCode, Coupon_name, emailsent, responders, responserate,
RN = RANK() OVER (PARTITION BY DealerCode, Coupon_name, responserate
ORDER BY DealerCode, responserate, emailsent)
FROM
table123
Это ожидаемый результат
RetailerCode Coupon_name emailsent responders responserate RN
----------------------------------------------------------------------
A1 Coupon 1 6 1 0.166666667 1
A1 Coupon 2 10 1 0.1 2
A1 Coupon 7 50 2 0.04 3
A1 Coupon 9 25 1 0.04 4
A2 Coupon 1 28 3 0.10714 2
A2 Coupon 4 12 0 0 3
A2 Coupon 3 1217 131 0.1076 1
A3 Coupon 2 63 10 0.1587 1
A3 Coupon 6 9 1 0.11111 2
A3 Coupon 7 3 0 0 3
A3 Coupon 8 2 0 0 4
A4 Coupon 4 174 22 0.1266782 3
A4 Coupon 3 1118 244 0.2182869 1
A4 Coupon 6 3091 420 0.135877 2
A5 Coupon 3 1227 78 0.06356962 2
A5 Coupon 2 780 50 0.064104 1
A5 Coupon 1 164 6 0.0365866 3