0
我有一個數據集象下面這樣:總框架,組和平均
Student,Test1,Test2,Test3
Saeed,59,94,81
Sam,60,77,81
Sammy,77,77,77
Saman,76,76,34
Shah,19,61,72
我想獲得最高的整體平均的學生姓名。
首先,我試圖得到每個學生的平均數,但我的查詢有錯誤。我不明白爲什麼。
db.students.aggregate({$group : {_id:"$Student", Average: {$avg:["$Test1", "$Test2", "$Test3"]}}})
如果什麼有兩個學生用相同的最高平均
$avg
? – user7770852您可以在'$ sort'和'$ limit'之前添加'$ group' stage'{group:{_id:「$ avg」,students:{$ push:「$ Student」}} },將推動同樣平均的學生。 – Veeram
非常感謝您的幫助!我嘗試使用不同的邏輯,但不知道如何編寫代碼:首先使用$ project獲取$ avg,然後使用$ group獲取$ max。 db.students.aggregate {$ project:{_id:「$ Student」,Avg:{$ avg:[「$ Test1」,「$ Test2」,「$ Test3」]}}}, {$ group: {_id:「$ Student」,Max:{$ max:「$ Avg」}}})但結果如下{「_id」:null,「Max」:94.66666666666667}。我還想顯示學生姓名和每個考試分數。 – user7770852