1446706280 MySQL


クロス集計(PIVOT)をしたいとおもっています。

テーブルは画像のような形です。

クロス集計の内容:

カラム「都道府県」が「東京」のレコードに
カラム「お店名」の値と同じ「都道府県」を
抽出して、Count数を一緒に出したい。


画像の内容であれば、

*「お店名」に
 ・マクドナルド
 ・モスバーガー
を含むレコード数を出す


結果:
香川→2
大阪→1
東京→3
徳島→2
北海道→1

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/11/05 15:51:20
  • 終了:2015/11/12 15:55:03

回答(1件)

id:opechuman No.1

opechuman回答回数16ベストアンサー獲得回数42015/11/09 11:56:38

ポイント200pt

すみません、回答の趣旨を理解しているかどうか自信がないのですが他に回答が付かないので。
pivotということであれば、group byで十分ではないかと思います。

select 都道府県,count(お店名) from テーブル名 where お店名 = "マクドナルド" or お店名 = "モスバーガー" group by 都道府県;

正に例に挙げているような結果が得られます。
whereの条件を書き換えればpivotのように様々な条件での集計結果が取り出せます。group byはカンマ区切りで複数指定できますのでExcelのピボットと同じように使えます。ただしレイアウトを弄るのは大変ですが。

ちなみに統計学でいうクロス集計表を出したい場合は以下のリンクを参照してもらえれば。
http://www.albert2005.co.jp/analyst_blog/?p=775

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません