Хорошо, у меня есть таблица «users» со столбцом «id» и столбцом «Score».«id» является первичным ключом, «score» может быть любым положительным целым числом, и пользователи могут иметь одинаковые оценки.
Мне нужно выбрать 3 строки:
- «целевой пользователь», то есть одна строка с «id»
- Пользователь, находящийся непосредственно над целевым пользователем, когдатаблица упорядочена по «Score»
- Пользователь, находящийся непосредственно под целевым пользователем, когда таблица упорядочена по «Score»
Есть предложения о том, как это сделать в SQL?Спасибо!
ОБНОВЛЕНИЕ
Извините, теперь я понимаю, что мне нужно больше выбирать, как обрабатывать несколько строк с одинаковым счетом.Я решил, что привязанные баллы будут исключены, поэтому я ищу пользователя со следующим наивысшим баллом и следующим наименьшим баллом у целевого пользователя.
Пример данных:
id score
1 0
2 5
3 9
4 5
5 5 *
6 5
7 8 *
8 3 *
Итак, если у моего целевого пользователя id = 5, я хочу строки с идентификаторами 7, 5 и 8