Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- #
- # A standalone example of the aggregate method
- require 'rubygems'
- require 'dm-core'
- require 'dm-migrations'
- require 'dm-aggregates'
- # setup the logger
- DataMapper::Logger.new($stdout, :debug)
- # connect to the DB
- DataMapper.setup(:default, 'sqlite3::memory:')
- class Example
- include DataMapper::Resource
- # properties
- property :id, Serial
- property :total, Float
- property :name, String
- end
- DataMapper.finalize.auto_migrate!
- 10.times do |n|
- Example.create(:name => (n % 2), :total => n)
- end
- p Example.aggregate(:name, :total.sum)
- __END__
- ~ (0.000102) SELECT sqlite_version(*)
- ~ (0.000206) DROP TABLE IF EXISTS "examples"
- ~ (0.000024) PRAGMA table_info("examples")
- ~ (0.000496) CREATE TABLE "examples" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "total" FLOAT, "name" VARCHAR(50))
- ~ (0.000119) INSERT INTO "examples" ("total", "name") VALUES (0.0, '0')
- ~ (0.000107) INSERT INTO "examples" ("total", "name") VALUES (1.0, '1')
- ~ (0.000090) INSERT INTO "examples" ("total", "name") VALUES (2.0, '0')
- ~ (0.000103) INSERT INTO "examples" ("total", "name") VALUES (3.0, '1')
- ~ (0.000093) INSERT INTO "examples" ("total", "name") VALUES (4.0, '0')
- ~ (0.000088) INSERT INTO "examples" ("total", "name") VALUES (5.0, '1')
- ~ (0.000089) INSERT INTO "examples" ("total", "name") VALUES (6.0, '0')
- ~ (0.000098) INSERT INTO "examples" ("total", "name") VALUES (7.0, '1')
- ~ (0.000090) INSERT INTO "examples" ("total", "name") VALUES (8.0, '0')
- ~ (0.000089) INSERT INTO "examples" ("total", "name") VALUES (9.0, '1')
- ~ (0.000100) SELECT "name", SUM("total") FROM "examples" GROUP BY "name" ORDER BY "name"
- [["0", 20.0], ["1", 25.0]]
Add Comment
Please, Sign In to add comment