私はそれをしたいことをするこの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 が最も多いユーザーが一番上にあり、一致する SkillID が少ないユーザーの順に表示されます。
私が無駄にしようとしたこと:
var userList2 = SQEPData.AllSkillLevelMaps.Where(x => skillIDs.Contains(x.SkillID)).GroupBy(g => g.User);