簡體   English   中英

將此row_number查詢轉換為Entity Framework Linq至Object查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM