我有一张游戏得分表;每个任务播放一排。为了获得每个用户的最佳分数,我创建了一个查询,该查询将为每个用户的每个任务提供最高分,每个用户一行。这些分数作为附加列(mission_1 和mission_2)添加。到目前为止,一切都很好。
但现在我想将这两个字段相加以获得每个用户的总最高分。但是,MySQL 不会让我在“字段列表”中显示未知列“任务_1”。
是否有可能以某种方式对这些字段求和?
我还想知道是否可以在单独的列(mission_1_id 和mission_2_id)中获得最高分数的任务对应的row_ids(我的表中的gsid)。但是我有一种行不通的感觉,因为我使用的是 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