ゲームのスコアの表があります。プレイしたミッションごとに 1 行。各ユーザーの最高スコアを取得するために、ユーザーごとに 1 行で各ミッションの最大スコアを取得するクエリを作成しました。これらのスコアは、追加の列 (mission_1 およびmission_2) として追加されます。ここまでは順調ですね。
しかし今、これら 2 つのフィールドを合計して、各ユーザーの合計最大スコアを取得したいと考えています。ただし、MySQL では許可されず、「フィールド リスト」に不明な列「mission_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