Теперь, когда Synology выпустила версию MariaDB, которая включает windows функции, которые я буду sh, чтобы воспользоваться преимуществами производительности, которые они предоставляют.
Я могу произвести ранжированный набор оценок, основанный на нескольких столбцах
select rank() over (partition by eventid,subcategory order by eventscore desc,
tiebreakscore desc,
agetiebreak desc) as rank,
eventid,
subcategory,
eventscore,
tiebreakscore,
agetiebreak,
honoursonly from scores;
Это успешно создает отдельные ранги в рамках события и подкатегории с 2 уровнями разбивания t ie (очевидно, полезный запрос должен включать в себя колонку показателей, но это не влияет на мой вопрос). Однако в моем приложении у нас также есть строки «Только для почести» в таблице. Они присваиваются званию так же, как и другие ряды, но не повышают звание и, следовательно, не влияют на ранги других (конкурирующих) рядов. Другой способ взглянуть на это состоит в том, что строки «Только для почестей» имеют тот же ранг, что и следующая строка «Конкурирующие».
Например, в следующей таблице строки, помеченные *, являются «Только для почестей» и не повысить звание.
rank, eventid, subcategory, eventscore, tiebreakscore, agetiebreak, honoursonly
1, 1, 18+, 93, 43, 881, 0
2, 1, 18+, 92, 44, 1203, 0
3, 1, 18+, 92, 43, 1200, 1 *
3, 1, 18+, 92, 43, 1194, 0
1, 1, <12, 83, 41, 1291, 0
2, 1, <12, 80, 25, 1291, 1 *
2, 1, <12, 76, 25, 1291, 0
3, 1, <12, 73, 32, 1297, 0
1, 1, <14, 94, 45, 1271, 0
2, 1, <14, 88, 42, 1269, 0
3, 1, <14, 87, 41, 1278, 0
1, 1, <18, 95, 38, 1232, 0
2, 1, <18, 94, 44, 1254, 0
3, 1, <18, 94, 44, 1240, 0
1, 2, Junior, 86, 39, 1274, 0
2, 2, Junior, 85, 41, 1280, 0
3, 2, Junior, 85, 39, 1283, 0
1, 2, Senior, 99, 22, 1148, 1 *
1, 2, Senior, 92, 43, 1213, 0
2, 2, Senior, 90, 41, 1226, 0
3, 2, Senior, 88, 36, 1216, 0
Тем не менее, я озадачен, если смогу найти способ добиться этого, поможет ли функция лидерства windows?