mysql:12903
From: 樋口聡 <樋口聡 <satoshi@xxxxxxxxxx>>
Date: Sun, 02 Apr 2006 17:35:22 +0900
Subject: [mysql 12903] 集計データ取得のためのSQL文の記述方法
いつもお世話になってます。樋口と申します。
MySQLに蓄積された情報を集計しようとSQL文を書いていて、自分の希望する結果
を一つのSQL文で実現できなかったので、ご存知の方がいらっしゃいましたら教
えていただけませんか?
テーブル定義:
id int auto_increment
email varchar(128) -- メールアドレス
channel tinyint default 0 -- 応募経路
create_date timestamp default null -- 作成日時
蓄積されているデータ:
id email channel create_date
1 abc1@xxxxxxxxxx 0 20060301185634
2 abc2@xxxxxxxxxx 1 20060302120503
3 abc3@xxxxxxxxxx 0 20060302190945
4 abc4@xxxxxxxxxx 2 20060303080754
5 abc5@xxxxxxxxxx 0 20060303101234
6 abc6@xxxxxxxxxx 1 20060303112351
7 abc7@xxxxxxxxxx 2 20060303121223
とします。
このとき集計データとして
DATE CHANNEL TOTAL
0 1 2
---------- ------ ------- ------- -------
20060301 1 0 0 1
20060302 1 1 0 2
20060303 1 1 2 4
と出力したいのです。
SELECT SUBSTRING(create_date,1,8) AS DATE,channel AS CHANNEL,count(*)
FROM test_tm6 GROUP BY DATE,CHANNEL;
としてみましたが、
DATE CHANNEL count(*)
20060301 0 1
20060302 0 1
20060302 1 1
20060303 0 1
20060303 1 1
20060303 2 2
となってしまいます。私の希望する結果を一つのSQL文で出力する方法はあるで
しょうか?
どなたかご存知でしたら、教えていただけると助かります。
---
樋口 聡
-> 12903 2006-04-02 17:35 [樋口聡 <satoshi@xxxx] 集計データ取得のためのSQL文の記述方法 12905 2006-04-02 20:46 ┗[とみたまさひろ <tomm] 12906 2006-04-03 11:16 ┗[樋口聡 <satoshi@xxxx]