0

Исходный запрос:Преобразовать этот row_number запрос Entity Framework Linq для объекта запроса

select min(id) as startid, max(id) as endid 
from (select t.*, floor((row_number() over (order by id) - 1)/200) as grp 
     from t 
     where t.x = y 
    ) t 
group by grp; 

Это прослеживание вопрос: Sql Range Groups Start and End Id

Я интересно, если это возможно, чтобы преобразовать это к Запрос Linq to Object? Я пробовал оглядываться за идеями и играл с .Skip() .Take(), но не смог получить ничего близкого к тому, что мне нужно. Благодарю.

Редактировать: Я хочу, чтобы вся транзакция произошла в базе данных. Это будет довольно большой набор данных, и было бы лучше, если бы мне не пришлось обрабатывать его дальше в моем приложении.

ответ

0

Попробуйте это, и вы можете исправить индекс границ условие выбора, как вы хотели .:

var query = context.YourTable.Where(x => x.t == "your y variable").ToList() 
    .OrderBy(x => x.ID).Select((x, index) => new { item = x, index = index }) 
    .GroupBy(x => x.index/200) 
    .Select(x => new { minID = x.Min(y => y.item.ID), maxID = x.Max(y => y.item.ID) }).ToList(); 
Смежные вопросы