我正在嘗試爲遊戲創建排行榜。遊戲由標有自己ID的不同遊戲組成。 MySQL db中的'參與'表看起來像這樣:計算其他人的專欄並在表格中填寫結果
| participation_id | user_id | score1 | score2 | score3 | total |
| 1 | 23 | 78 | 12 | 98 | |
| 2 | 31 | 68 | 45 | 95 | |
| 3 | 23 | 98 | 23 | 100 | |
所有得分從0到100只是供您參考。 我想爲每個參與者填寫score1+score2+score3
的總列,如果由同一用戶運行的另一參與者的總分數較好,則將其填入NULL
或0
。 我是那種時候纔來MySQL的腳本初學者,所以我在問你,尤其是對腳本的第二部分:/
注意有關總比分:我沒有計算出總的插入行時得分爲分數值需要規範化從0轉到100
編輯:作爲寫入DB將創建冗餘和在我的情況是不需要的,我更新我的問題:如何做我過濾這些結果只保留每個用戶的最佳分數?
| user_id | total |
| 1 | 98 |
| 2 | 45 |
| 1 | 12 |
| 2 | 69 |
| 1 | 54 |
EDIT2:最簡單的解決方案是使用GROUP BY
這樣的:
SELECT user_id, MAX(total) AS score
FROM table_name
GROUP BY score
感謝您的建議!
我建議對有條件填充根據用戶的其他合計總列。實際上,我會建議不要一起添加總列......您可以在查詢內部進行總計和條件選擇,而不是在表格本身內進行。 – 2012-03-29 21:08:55