MySQL的sum()函數


如下圖,這是一個關於用戶參加活動,每個活動會給這位用戶評分的一個表:

用戶1參加了A活動,評分100;

用戶2參加了B活動,評分98,又參加了D活動,評分10;

用戶3參加了C活動,評分99

需求:把以上四條數據按照每個用戶的 總分 降序排列

SQL:

SELECT SUM(score),user_id,campaign_id FROM 表名 GROUP BY (user_id) ORDER BY SUM(score) DESC ;

結果為:

完成需求,以下是實際應用遇到的小問題:

**Dao.xml :

需要注意:因為sum()是一個函數,所以取值時要用map接收,但是 我們這個需求是要降序的,map 又是無序的,用map接收豈不是做了無用功?不用擔心,在Dao里我們再封裝一層:

**Dao.java :

把他用ArrayList來接收,Map做泛型,這樣就不怕它的順序變化了,順便貼一下實現類里的取值方法:

**ServiceImpl . java :

foreach循環,但如果取sum(score)時,直接像上一行取contacts_id一樣   ,轉String類型運行是會報錯的,需要借助Integer來做轉換,這樣取到的值才是正確不會報異常的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM