我有一個包含遊戲分數的表;每個任務都有一排播放。爲了獲得每個用戶的最佳分數,我創建了一個查詢,該查詢將爲每個用戶提供每個任務的最高分數,每個用戶只有一行。這些分數被添加爲額外的列(mission_1和mission_2)。到現在爲止還挺好。用語句創建的總和字段當語句
但是現在我想總結這兩個字段以獲得每個用戶的總最高分數。但是,MySQL不會讓我在'字段列表'中說'未知'列'mission_1'。
是否有可能以某種方式獲得這些字段總結?
我也想知道是否有可能得到相應的row_ids(gsid在我的表中)的任務與最高分在不同的列(mission_1_id和mission_2_id)。但我有一種感覺,因爲我正在使用MAX(),所以不起作用。
SELECT m . * , max(m.id) as max_id, max(submitted_on) AS max_submitted_on,
ifnull(max(CASE WHEN mission =1 THEN score END) , 0) AS mission_1_score,
ifnull(max(CASE WHEN mission =2 THEN score END) , 0) AS mission_2_score,
mission_1_score + mission_2_score AS total_score
FROM game_sessions m
GROUP BY username
你不能總結別名,你必須要總結每個expresions的,比方說IFNULL(....使命= 1 ...)+ IFNULL(。 ......使命= 2 ......) – Nico 2013-04-22 13:29:01
謝謝,這也是戈登答案的要旨。 – Whiskey 2013-04-22 15:21:25