0

それぞれハッシュを出力する 2 行のコードがあり"super"ます"good"

レーティング固有:

Car.send(rating).group("DATE_TRUNC('week', created_at)").order('date_trunc_week_created_at asc').count

すべてを数えます:

Car.group("DATE_TRUNC('week', created_at)").order('date_trunc_week_created_at asc').count

これは、コードの最初の行からの出力ハッシュです。2 行目は、1 つだけでなくすべての評価をカウントするため、カウントが高いだけで似たようなものを出力します。

{2013-03-11 00:00:00 UTC=>21,
 2013-03-18 00:00:00 UTC=>26,
 2013-03-25 00:00:00 UTC=>22,
 2013-04-01 00:00:00 UTC=>38,
 2013-04-08 00:00:00 UTC=>67,
 2013-09-16 00:00:00 UTC=>1}

ハッシュ 1 の値がハッシュ 2 の値に対して何パーセントであるかを計算するにはどうすればよいですか? パーセンテージ ( value1 * 100 / value2) の計算方法は知っていますが、ハッシュから値を取得する方法がわかりません。日付は今のままでなければなりません。値のパーセンテージを計算するだけです。

編集:要求どおり、2 つのハッシュ + 期待される結果:

ハッシュ 1

{2013-03-11 00:00:00 UTC=>21,
2013-03-18 00:00:00 UTC=>26,
2013-03-25 00:00:00 UTC=>22,
2013-04-01 00:00:00 UTC=>38,
2013-04-08 00:00:00 UTC=>67,
2013-09-16 00:00:00 UTC=>1}

ハッシュ 2

{2013-03-11 00:00:00 UTC=>42,
2013-03-18 00:00:00 UTC=>89,
2013-03-25 00:00:00 UTC=>345,
2013-04-01 00:00:00 UTC=>56,
2013-04-08 00:00:00 UTC=>123,
2013-09-16 00:00:00 UTC=>5}

期待される結果 ( value hash 1 * 100 / value hash 2)

{2013-03-11 00:00:00 UTC=>50,
2013-03-18 00:00:00 UTC=>29.213,
2013-03-25 00:00:00 UTC=>6.376,
2013-04-01 00:00:00 UTC=>67.857,
2013-04-08 00:00:00 UTC=>54.471,
2013-09-16 00:00:00 UTC=>20}
4

1 に答える 1