Функция MariaDb / Mysql Rank - один раздел ранжируется перед другим
У меня две функции ранжирования, и одна работает должным образом. Однако другой ранжирует один раздел перед другими разделами. Вот код:
if(count1>=3 and count2>=2 and count3>=2,
rank() over (partition by examdateID, sClass Order By orderColumn desc), count(StudentID) over (partition by examdateID, sClass)) as ClassRank ,
if(count1>=3 and count2>=2 and count3>=2,
rank() over (partition by examDateID, sClass, stream Order By orderColumn desc), count(StudentID) over (partition by examdateID, sClass, stream )) as StreamRank from...
У меня есть два потока, и я ожидаю, что classRank даст рейтинг всех студентов в потоках. Однако все в потоке 1 ранжируются перед потоком 2 ...3 и т. Д.
если условие (count1,2,3) не выполняется, я просто ожидаю общее количество студентов
не могли бы вы указать мне в правильном направлении?
Я использую MariaDb 10.4.10
Изменить:: Я понял, что проблема в том, что если... когда я его удаляю, ранжирование в порядке Может быть, rank() нельзя поместить внутрь, если... все еще нужны предложения