at posts/single.html

「地名しりとり」県別ランキング

地名しりとり公開してから二ヶ月が過ぎた。 おかげさまで、定期的に遊んでもらっている。

せっかくなので、これまでに登場した地名を県別にランキングした。 こういうことが簡単に出来るのがデータベースの強みだなぁ。

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

関連する日記