Название вопроса - мои мысли о решении следующей проблемы, но, конечно, я не хочу ограничивать ваши ответы этим.
Описание базы данных:
Таблица: Игроки
Столбцы: Player_id (целочисленный первичный ключ проиндексирован), Team_id (целое число), Player_name (текст), Player_points (целое число), Player_status (ENUM 'Ok', 'NotOk')
Я хочу, чтобы 5 игроков набрали наибольшее количество очков для каждого из этих Team_id (1,2,3).
Строки 1-5 команда 1, строки 6-10 команда 2, строки 11-15 команда 3. Игроки упорядочены по очкам, а затем по статусу для каждой команды, в одном запросе (ИСПРАВЛЕНИЕ: или больше запросов, если нет выбора ).
строка 1-5 (как вы можете видеть для team_id 1):
- 2,1, Иордания, 10000, ок
- 8,1, Пиппен, 9000, Ok
- 5,1, Родман, 9000, Ok
- 9,1, Grant, 9000, NotOk (как вы можете видеть, они сортируются по точкам, а затем по статусу)
- 1,1, приход, 5000, Ok
строка 6-10 (для team_id 2):
- 14,2, Юинг, 8000, нотки
- 11,2, Старков, 7000, Ok
- 10,2, Oakley, 7000, нотки
- 19,2, Harper, 6000, Ok
- 13,2, Smith, 5000, Ok
строка 11-15 (для team_id 3):
- 29,3, Bird, 9000, Ok
- 28,3, Rivas, 8000, нотки
- 21,3, Paxson, 7000, Ok
- 20,3, Shaw, 7000, нотки
- 22,3, Lohaus, 7000, нотки
Я ищу решение с хорошей производительностью. Таблицы будут содержать тысячи данных, но Team_id будет только 3 (команды / игроки NBA здесь только для демонстрационных целей)