すみません、回答の趣旨を理解しているかどうか自信がないのですが他に回答が付かないので。
pivotということであれば、group byで十分ではないかと思います。
select 都道府県,count(お店名) from テーブル名 where お店名 = "マクドナルド" or お店名 = "モスバーガー" group by 都道府県;
正に例に挙げているような結果が得られます。
whereの条件を書き換えればpivotのように様々な条件での集計結果が取り出せます。group byはカンマ区切りで複数指定できますのでExcelのピボットと同じように使えます。ただしレイアウトを弄るのは大変ですが。
ちなみに統計学でいうクロス集計表を出したい場合は以下のリンクを参照してもらえれば。
http://www.albert2005.co.jp/analyst_blog/?p=775