「地名しりとり」県別ランキング
地名しりとりを公開してから二ヶ月が過ぎた。 おかげさまで、定期的に遊んでもらっている。
せっかくなので、これまでに登場した地名を県別にランキングした。 こういうことが簡単に出来るのがデータベースの強みだなぁ。
- 結果のグラフ (Excelでグラフ化した)
1位は東京かと思いきや、意外にも…。
集計方法
$ script/console Loading production environment. >> History.count => 1279
ふむふむ。1279箇所の地名が登場している。 それぞれの地名を都道府県別に集計する。
calc = Hash.new(0) History.find(:all, :include => 'area').each do |h| calc[h.area.root.name] += 1 end ranking = calc.sort{|a,b| b[1] <=> a[1] }
※ 上記の集計方法はあまり賢くないかも。1279箇所の地名に対して、それぞれの root の計算で SQL が発行されている。
トップ5を表示
ranking[0...5].each do |pref, count| puts "#{pref}:\t#{count}" end
北海道: 123 東京都: 109 愛知県: 70 千葉県: 62 神奈川県: 60
千葉県が多いのは、「○○町」の次に「千葉市○○区」と繋げたくなるからかな。たぶん。
ワースト5を表示
ranking.reverse[0...5].each do |pref, count| puts "#{pref}:\t#{count}" end
徳島県: 1 香川県: 3 宮崎県: 6 佐賀県: 6 福井県: 9
1回だけとは寂しい。徳島がんばれ!
ちなみにこの集計方法だと、0回の都道府県は表示されない。 今回は全ての都道府県が最低1回は登場しているので、たまたまうまくいっている。
>> ranking.size 47