我想從鏈接到Entity Framework 4.0的表中獲得排名前五位的重複記錄。在一個返回五個記錄集合列表的單個查詢中如何實現?獲取實體框架中排名前五位的重複記錄
1
A
回答
4
實際上你應該按字段進行分組,這些字段定義記錄是否重複。例如。在你的情況下,它應該是像會員ID一樣。然後,您可以引入新的範圍變量,它將保留每個組中的記錄數。使用該變量的排序:
var query = from s in db.Statistics
group s by s.MemberId into g // group by member Id
let loginsCount = g.Count() // get count of entries for each member
orderby loginsCount descending // order by entries count
select new { // create new anonymous object with all data you need
MemberId = g.Key,
LoginsCount = loginsCount
};
然後取前5:
var top5 = query.Take(5);
,將產生類似
SELECT TOP (5) // Take(5)
[GroupBy1].[K1] AS [MemberId], // new { MemberId, LoginsCount }
[GroupBy1].[A1] AS [C1]
FROM (SELECT
[Extent1].[MemberId] AS [K1],
COUNT(1) AS [A1] // let loginsCount = g.Count()
FROM [dbo].[Statistics] AS [Extent1]
GROUP BY [Extent1].[MemberId] // group s by s.MemberId
) AS [GroupBy1]
ORDER BY [GroupBy1].[A1] DESC // orderby loginsCount descending
+1
這似乎很有幫助,非常感謝。鏈接到實體的確切查詢是什麼? – user2493843
+0
@ user2493843我已經更新了生成的SQL查詢示例的答案:) –
8
相關問題
- 1. 實體框架重複記錄
- 2. 使用實體框架複製MVC中的重複記錄
- 3. 使用實體框架獲取表中的所有記錄與實體框架
- 4. 使用實體框架在數據庫中獲取重複記錄
- 5. 消除實體框架數據庫中的重複記錄
- 6. 實體框架:多對多關係中的重複記錄
- 7. 如何在實體框架中插入重複記錄
- 8. 實體框架,防止重複的記錄,同時連接
- 9. 實體框架返回重複的記錄後加入
- 10. 插入後在實體框架中獲取記錄ID
- 11. 實體框架和重複
- 12. 實體框架重複列
- 13. 實體框架中的外鍵記錄
- 14. 使用實體框架添加記錄重複其他對象
- 15. 實體框架重複記錄第二次插入
- 16. MVC實體框架驗證,以防止重複記錄
- 17. 實體框架。查看返回重複記錄
- 18. 實體框架創建重複實體
- 19. 實體框架按名稱獲取表
- 20. 實體框架..自引用表..獲取Depth = x的記錄?
- 21. 實體框架4獲取插入記錄的主鍵ID
- 22. 帶實體框架的PagedList獲取所有記錄
- 23. 實體框架:使用篩選的子記錄獲取父記錄
- 24. 實體框架 - 使用tableName獲取所有記錄
- 25. 實體框架4.1無法從數據庫獲取記錄
- 26. MySQL,獲取真實重複記錄
- 27. 與實體框架獲取
- 28. 實體框架:獲取相關實體
- 29. 如何獲得實體框架中的行排名
- 30. 在實體框架中重命名列
您正在使用什麼確切的記錄查詢?你如何定義他們重複?請顯示你的代碼。沒有確切的信息,你無法得到確切的答案。 –
@SergeyBerezovskiy讓我給你解釋一下..假設我有一個統計表,當我登錄到他的賬戶時,我保存了一條記錄,現在我想得到登錄時間最長的五位成員。你需要更多的解釋嗎? – user2493843
這足以提供更準確的答案。但請記住 - 下次您應該直接提供有關代碼示例的所有信息。這將使答案快速,準確 –