• ベストアンサー

mysql 条件付き カウント

恐れ入ります。 mysqlで、num,col1,col2,col3 とselectして、 col2 が 10000万以上が何件 col2が 10000万未満 かつ500万以上が何件 col2が 500万未満 かつ200万以上が何件 col2が 200万未満が何件 というように、複数範囲条件指定をして、おのおの件数を取得したいのですが、なかなかうまくいきません。 ご教授いただけたらと思います。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どのようにしたいのかよくわからないので、全件の件数を列表示する場合で回答します。 簡単な方法ですが、条件に合う時は1、合わない時は0とし、合計(SUM)すれば可能です。 SELECT SUM(CASE WHEN COL2>100000000 THEN 1 ELSE 0 END) ,SUM(CASE WHEN COL2<=100000000 AND COL2>50000000 THEN 1 ELSE 0 END) ,SUM(CASE WHEN COL2<=50000000 AND COL2>20000000 THEN 1 ELSE 0 END) ,SUM(CASE WHEN COL2<20000000 THEN 1 ELSE 0 END) FROM テーブル

spider32
質問者

お礼

回答ありがとうございます。 mysqlをperlで読み込んで表示をしています。 while (@rec = $sth->fetchrow_array) { として、rec[0] rec[1] rec[2]という感じで表示する場合、select文でcol2を複数条件設定すると、うまく行かなくて。 ご回答いただいた文を、prelで読み込む場合どのようにしたら良いでしょうか。

spider32
質問者

補足

すいません!できました。 col2 をrec[2]で引っ張って、rec[3] rec[4]と並べたら表示されました。 ありがとうございます。