以下圖,這是一個關於用戶參加活動,每一個活動會給這位用戶評分的一個表:java
用戶1參加了A活動,評分100;函數
用戶2參加了B活動,評分98,又參加了D活動,評分10;3d
用戶3參加了C活動,評分99xml
需求:把以上四條數據按照每一個用戶的 總分 降序排列blog
SQL:泛型
SELECT SUM(score),user_id,campaign_id FROM 表名 GROUP BY (user_id) ORDER BY SUM(score) DESC ;foreach
結果爲:List
完成需求,如下是實際應用遇到的小問題:循環
**Dao.xml :map
須要注意:由於sum()是一個函數,因此取值時要用map接收,可是 咱們這個需求是要降序的,map 又是無序的,用map接收豈不是作了無用功?不用擔憂,在Dao裏咱們再封裝一層:
**Dao.java :
把他用ArrayList來接收,Map作泛型,這樣就不怕它的順序變化了,順便貼一下實現類裏的取值方法:
**ServiceImpl . java :
foreach循環,但若是取sum(score)時,直接像上一行取contacts_id同樣 ,轉String類型運行是會報錯的,須要藉助Integer來作轉換,這樣取到的值纔是正確不會報異常的。