2007/10/26 金曜日

クロス集計まとめ

Filed under: SQL — admin @ 10:18:50

 ■ MySQL

1)究極的に変態チックに省略するとこうなる

SELECT
   sum(carrier_id=1) "ドコモ",
   sum(carrier_id=2) "au",
   sum(carrier_id=3) "SoftBank"
 FROM
   access

 2) 一般的にはこちら

 SELECT
   sum(field(carrier_id,1)) "ドコモ",
   sum(field(carrier_id,2)) "au",
   sum(field(carrier_id,3)) "SoftBank"
 FROM
   access

 ■ Oracle

 SELECT
   sum(decode(carrier_id,1,1,0,0) "ドコモ",
   sum(decode(carrier_id,2,1,0,0) "au",
   sum(decode(carrier_id,3,1,0,0) "SoftBank"
 FROM
   access

 ■ PostgreSQL
 ※ Oracleはこっちでもできるようです。

 SELECT
   sum(case when carrier_id=1 then 1 else 0 end) "ドコモ",
   sum(case when carrier_id=2 then 1 else 0 end) "au",
   sum(case when carrier_id=3 then 1 else 0 end) "SoftBank"
 FROM
   access
No Tags

コメント (3) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URL

コメントをどうぞ

You must be logged in to post a comment.