1446706280 MySQL


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

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

クロス集計の内容:

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


画像の内容であれば、

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


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

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/11/12 15:55:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:opechuman No.1

回答回数16ベストアンサー獲得回数4

ポイント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

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

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

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

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

回答リクエストを送信したユーザーはいません