バリケンのRuby日記 RSSフィード

2006-09-30

[] 「たのしいRuby 第2版」の練習問題を解く(9)  「たのしいRuby 第2版」の練習問題を解く(9) - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  「たのしいRuby 第2版」の練習問題を解く(9) - バリケンのRuby日記  「たのしいRuby 第2版」の練習問題を解く(9) - バリケンのRuby日記 のブックマークコメント

(5) (1)の配列に含まれる整数の和を次の2つの方法で求めてください。 (a)Array#eachメソッドを使う (b)Array#injectメソッドを使う

たのしいRuby 第2版

じゃあ、ぼくの答えだよ。まずは(a)から。

sum = 0
a = (1..100).to_a
a.each{|item| sum += item}
p sum

つぎに(b)だよ。

a = (1..100).to_a
p a.inject(0){|sum,i| sum += i}

解答例と比較してみると‥‥。ん、これもやっぱり差がでないねえ。

[][] ActiveRecordで「SQL書き方ドリル」(7)  ActiveRecordで「SQL書き方ドリル」(7) - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  ActiveRecordで「SQL書き方ドリル」(7) - バリケンのRuby日記  ActiveRecordで「SQL書き方ドリル」(7) - バリケンのRuby日記 のブックマークコメント

きょうは「第2章 ひとつのテーブルを扱う」の「その7 集合関数を使う」をやってみるよ。

ある日、あなたは上司に頼まれました。

「うちの商品って、平均単価いくらくらいなの? ちょっと教えて」

商品テーブルの名前はProductsです。商品テーブルの中に商品名はProductNameという列が、単価はPriceという列があります。さて、どのようにすればよいでしょうか。

すらすらと手が動くようになるSQL書き方ドリル

やっぱり、これもActiveRecordならカンタンだね。averageメソッドを使うよ。

require 'rubygems'
require 'active_record'

ActiveRecord::Base.establish_connection(
  :adapter  => 'postgresql',
  :host     => 'localhost',
  :username => 'sql_training',
  :password => '(設定したパスワード)',
  :database => 'nyanko'
)

class Product < ActiveRecord::Base
  set_primary_key :ProductID
end

puts Product.average(:price)