[英]Convert this row_number query to Entity Framework Linq to Object query
原始查詢:
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范圍組的開始和結束ID
我想知道是否有可能將其轉換為Linq to Object查詢? 我曾嘗試到處尋找想法,並使用.Skip().Take()進行游戲,但無法獲得任何接近我所需要的東西。 謝謝。
編輯:我希望整個交易發生在數據庫中。 這將是一個相當大的數據集,最好是不必在應用程序中進一步處理它。
嘗試此操作,您可以根據需要更正索引邊界選擇條件。:
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.