人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQL

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

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

クロス集計の内容:

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


画像の内容であれば、

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


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



1446706280
●拡大する

●質問者: webtomake
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● opechuman
●200ポイント

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

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

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

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ