こんにちは。
東京はこれから雪が。。 帰りに足元すべらせないように!!
"☆..:*・゜☆..:*・゜☆..:*・゜☆..:*・゜☆:*・☆
さて今日はSQL TIPSです。
「件数別レコード数」の集計SQLをご紹介!
例えば、お客さんの来店履歴のテーブル(raiten)
user_id | date |
========================
1 | 2010/01/01 |
2 | 2010/01/01 |
3 | 2010/01/01 |
1 | 2010/01/02 |
1 | 2010/01/04 |
のデータから
1回 2名
3回 3名
のような「来店数別人数」
を集計したいときには、
select cnt, count(*) from (select user_id, count(*) cnt from raiten group by user_id) aaa group by cnt;
とやれば集計できてしまいますー すばらしいー
さて、ここでポイントなのが
「aaa」 ってなに? ってはなしですが、
では、aaaをとって、
select cnt, count(*) from (select user_id, count(*) cnt from raiten group by user_id) group by cnt;
と実行すると
ERROR 1248 (42000): Every derived table must have its own alias
と残念なことにエラーとなってしまいます。。
で、そのエラーは何?
derived table ってのは fromの後の()で囲まれたSQLのことで
それにalias(つまりお名前)を付けなされというMYSQLからのお達しなのでした。
なので、aaaという名前(alilas)をつけたのです。もちろん名前はaaaである必要はないです。他の文字列でもOKっす。
よろしけれあば、ぜひおためしあれー。
PVをDB保存しとけばのユーザ別アクセス数(UU)などを集計することもこのやりかたいけるっす!
※ テーブルのデータ量が膨大な時、DBに負荷がかかる可能性があるので、ご注意を。
、
東京はこれから雪が。。 帰りに足元すべらせないように!!
"☆..:*・゜☆..:*・゜☆..:*・゜☆..:*・゜☆:*・☆
さて今日はSQL TIPSです。
「件数別レコード数」の集計SQLをご紹介!

例えば、お客さんの来店履歴のテーブル(raiten)
user_id | date |
========================
1 | 2010/01/01 |
2 | 2010/01/01 |
3 | 2010/01/01 |
1 | 2010/01/02 |
1 | 2010/01/04 |
のデータから
1回 2名
3回 3名
のような「来店数別人数」
を集計したいときには、
select cnt, count(*) from (select user_id, count(*) cnt from raiten group by user_id) aaa group by cnt;
とやれば集計できてしまいますー すばらしいー
さて、ここでポイントなのが
「aaa」 ってなに? ってはなしですが、
では、aaaをとって、
select cnt, count(*) from (select user_id, count(*) cnt from raiten group by user_id) group by cnt;
と実行すると
ERROR 1248 (42000): Every derived table must have its own alias
と残念なことにエラーとなってしまいます。。
で、そのエラーは何?
derived table ってのは fromの後の()で囲まれたSQLのことで
それにalias(つまりお名前)を付けなされというMYSQLからのお達しなのでした。
なので、aaaという名前(alilas)をつけたのです。もちろん名前はaaaである必要はないです。他の文字列でもOKっす。
よろしけれあば、ぜひおためしあれー。
PVをDB保存しとけばのユーザ別アクセス数(UU)などを集計することもこのやりかたいけるっす!
※ テーブルのデータ量が膨大な時、DBに負荷がかかる可能性があるので、ご注意を。
、