Очередная задачка с собеса от Тинька!
По сути нужно сделать функционал DENSE_RANK.
Как обычно мой вариант решения в комментах!
можете перейти, но сначала проверьте ссылку и будьте аккуратны: не вводите по ссылке пароли, номера телефонов и банковских карт, и другие личные данные
https://
уверены, что хотите выйти?
придется авторизоваться заново, а заполненные данные будут удалены
пост закреплён — пока закрепить можно только один пост
что-то пошло не так — попробуйте снова чуть попозже
· 11.03
Примерная идея следующая. 1.Через generate_series(помоему так, давно не пользовался) генерируем нумерацию для от 1 до (количество строк) 2. Делаем кросджоин нумерации к нашей таблице 3. Джой ним результат предыдущего шага к самому себе. В условия джоин пихаем case если номера у пары больше, то и points должны быть больше, ну и соответственно в другую сторону тоже. Так же исключаем пары сам на себя, и убереми пары с одинаковыми номерами 4. Дальше для каждого id берем минимум нумерации. По идее это и будет его место, но на практике не проверял, все только в уме.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 11.03
Можно сильно проще, одного коррелирующего подзапроса с count(distinct points) и условием t1.points>=t2.points достаточно будет
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 13.03
Хитро. В рамках собеса думаю мой вариант прокатил бы, хотя до оптимальности ему конечно далековато :)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён