質問: '1' THEN hoge ELSE 0 END) FROM テーブル名 GROUP BY name;`?
回答: name別にhogeの値を集計したいときは ``` SELECT name, SUM(hoge) FROM `テーブル名` GROUP BY name; ``` となります。 ここでlevelが'1'のレコードのみ集計したい場合、 ``` SELECT name, SUM(CASE WHEN level = '1' THEN hoge ELSE 0 END) FROM `テーブル名` GROUP BY name; ``` と書くことが出来ます。 (levelが'1'以外のレコードは0として集計されています) さらにlevelが'1'と'2'の結果を同時に取得したい場合がSQL1の構文に該当します。 また、別の集計方法として ``` SELECT name, level, SUM(hoge) FROM `テーブル名` GROUP BY name, level ``` としてもname別+level別の結果が得られます。 (WHERE句を使えばlevelの条件指定も可能です) SQL2, SQL3に関しては構文的におかしいのであまり深く考えなくてもよいかと。