![](/img/trans.png)
[英]Get top n rows and sum the rest and call it others in Entity Framework linq lambda query
[英]entity framework linq query, get top N postIDs from favorite's table based on count
我有一個數據庫來跟蹤Favorites
,看起來像
[ID]
[PostID]
[userID]
[DateFavorited]
我試圖在Linq中編寫一個實體框架查詢,該查詢將獲取在該數據庫中最常出現的12個PostIDs
。
我看了一下文檔,但是我沒有將如何做到這一點放在一起。 目的是為“最喜歡的”頁面
我覺得這是一個優雅的解決方案,但是我感到沮喪,以至於我不考慮如何做到這一點,而不是整頓整張桌子,這是一個壞主意。
在SQL中,這將是:
SELECT
TOP 12
PostID,
COUNT(*) As FavCount
FROM
Favorites
GROUP BY
PostID
ORDER BY
FavCount DESC
我相信在Linq,它將是:
var ret = db.Favorites.GroupBy(
fav => fav.PostId
).Select(
favGroup => new {
PostId = favGroup.Key,
Count = favGroup.Count()
}
).OrderBy(
row => row.Count
).Take( 12 );
ret
的類型為IEnumerable<Anonymous{ PostId, Count }>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.