« No.4 マウスの代わりにペンタブレットを使う | トップページ | No.5 無線LANはトリプレットゲートを利用する。 »

2009年1月 2日 (金)

COUNT関数を使わずに条件付のカウントをする

商品が登録されたテーブルを利用して、各項目の条件ごとに件数をカウントしたいことがある。

例えばこんなテーブル

name color size price
A red big 100
B blue small 50
C red big 100
D yellow big 200
E blue small 50
F red small 50

今までは

SELECT COUNT(name),COUNT(color),COUNT(size),COUNT(price) FROM product WHERE color = 'red';

こんな感じで書いていた。この指定だと、WEHERには一つの条件しか書けない。複数の条件を指定したいときにはちょっと不便だった。専門書を見ていて次のように書けることを覚えたので記録。

SELECT SUM (color='red') AS Red
           ,SUM (size='big')    AS Big
          ,SUM (1)              AS Total
    FROM product;

このように指定すると複数の集計条件を設定できる。この例はMySQLでのみ動作する。
Sum(1)と指定するとすべての行数を取得することができる。割合計算に使える。

« No.4 マウスの代わりにペンタブレットを使う | トップページ | No.5 無線LANはトリプレットゲートを利用する。 »

03 アプリケーション」カテゴリの記事