Я столкнулся с трудом, чтобы получить следующий запрос:множественным топ п запросов
Скажем, у меня есть таблица с большим количеством команд и каждая команда имеет 15 игроков (взаимно многие к игровому столу).
Тех игроков упорядочивается в команде, через колонку заказа, от 0 до 14 и имеет два атрибута:
- Очки набрал (целочисленные)
- wasSick (логические или целое число со значениями 0 для ложной или 1 для истинного)
Я хотел бы запрос, который возвращает строку для каждой команды, где первый столбец является команда идентификатор (первичный ключ) и второй столбец является суммой точек забил с первых 11 пл айеры каждой команды, которые не болели, используя порядок, определенный в колонке «Порядок».
Если более 3 игроков болели за команду, они будут использовать все оставшиеся.
Это файл базы данных Oracle. Я попытался использовать ROWNUM, но мне нужен подобный rownum, который сбрасывается для каждой агрегации. Запрос может содержать подзапросы или использовать предложение WITH.
Спасибо!
PD: Если вы догадались, это футбольные/футбольные команды.
EDIT
атрибут используется, чтобы знать порядок игроков в команде является столбцом заказ. Назовем его столбцом «Позиция», и он имеет целое число от 0 до 14. Поэтому, если в команде игроки 2 и 4 болеют, мне нужна сумма очков, сделанных игроками 0,1,3,5,6, 7,8,9,10,11 и 12.
Моя попытка была что-то вроде:
SELECT t.id, sum(p.points) FROM team t, points p WHERE p.t_id = t.id AND p.wasSick = 0 AND ROWNUM < 12 GROUP BY p.t_id
что здесь не так, что я пропускаю ORDER BY p.position и ROWNUM не сбрасывается между командами.
Когда вы говорите, "очки, набранные из первых 11 игроков каждой команды" есть ли атрибут/колонку, которую можно использовать для их заказа? – Chandu
Можете ли вы опубликовать свои попытки? –