У меня есть хранимая процедура, которая возвращает курсор.
Приложение передает в процедуру параметр, который определяет, сколько идентификаторов нужно выбрать, поэтому процедура не знает ни секунды этого числа.
foreach ID Мне нужно получить 3 верхние записи с этим ID.
то, что я пробовал, использует:
select * from table_name where id in (List of ID`s);
Этот запрос работает, но я не могу получить верхние 3 каждого идентификатора. Если я ограничу количество результатов, я получу ТОП-результаты первого идентификатора.
Я подумал использовать For Loop, выполнить запрос для каждого идентификатора и добавить результаты к курсору, но, насколько я понимаю, это невозможно.
Есть идеи?
Подробнее
Допустим, у меня есть 5 ID s and each of them have inner Id
с, так
Id 1 имеет (1,2,3,4,5) Id 2 (1,2,3,4,5) Id 3 (12,14,15,16,22) Id 4 (2,3,5,7) , 9) Id 5 (4,7,8,9,10)
В этом случае, с которым я имею дело, я не вижу, как мне поможет номер строки.
Мне нужны первые 3 для каждого идентификатора, в этом случае курсор должен иметь 15 результатов.
10х много и хороших выходных;)