同一行のカラムの合算値の取得

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

MySQLで複数行を取得して同一カラムの合算を求めるのはSUM()で出来ますが、同一行のカラムを足したものを取得するにはどうしたらいいんでしょうか?

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.2.7 SELECT 構文

例:
mysql> SELECT 1 + 1;
-> 2

テーブルが参照されていない場合に、DUAL をダミー テーブルとして指定する事が許されています。
mysql> SELECT 1 + 1 FROM DUAL;
-> 2

DUAL は純粋に、全ての SELECT ステートメントが FROM と、別の条項を持津事を要求する人々の為に役立つ物です。MySQL は条項を無視するかもしれません。 MySQL は、もしテーブルが参照されなければ FROM DUAL を要求しません。

なるほど。 カラムを演算する式を書けばいいんですね。 そして演算結果は AS 付けたエイリアスを指定して取得できます。

select_expr に AS alias_name を利用したエイリアスを与える事ができます。そのエイリアスは、式のカラム名として利用され、 GROUP BY、ORDER BY、または HAVING 条項内で利用する事ができます。例:
 
SELECT CONCAT(last_name,', ',first_name) AS full_name FROM mytable ORDER BY full_name;

でもちょっと注意が必要なのは、

WHERE 条項が実行された時にはまだカラム値が決定されていない可能性があるので、WHERE 条項の中でカラムのエイリアスを利用するのは許されていません。 詳しくは 項B.1.5.4. 「Problems with Column Aliases」 を参照してください。

ということです。