我有这个SQL查询可以完成我想要的操作,但我对GroupBy()
和OrderBy()
如何正常工作感到困惑...
这是我的SQL语句可以正常工作:
SELECT TOP 5 UserID, COUNT(*)
FROM SkillLevelMap
WHERE SkillID = 183 OR SkillID = 102 OR SKILLID = 103
GROUP BY UserID
ORDER BY COUNT(*) DESC
理想情况下,最终产品是满足这些条件的UserID列表,按每个SkillID的发生顺序排列,其中匹配最多的SkillID的用户位于顶部,下往较少的人。
我试图无效:
var userList2 = SQEPData.AllSkillLevelMaps.Where(x => skillIDs.Contains(x.SkillID)).GroupBy(g => g.User);
答案 0 :(得分:2)
您的查询似乎与以下内容类似:
var userList2 = SQEPData.AllSkillLevelMaps
.Where(x => skillIDs.Contains(x.SkillID))
.GroupBy(x => x.User)
.Select(g => new { User = g.Key, Count = g.Count() })
.OrderByDescending(i => i.Count)
.Take(5);