first commit
This commit is contained in:
41
lua-sqlite3-0.4.1/examples/aggregate.lua
Normal file
41
lua-sqlite3-0.4.1/examples/aggregate.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
require "path"
|
||||
require "sqlite3"
|
||||
|
||||
|
||||
local db = sqlite3.open_memory()
|
||||
|
||||
assert( db:exec[[
|
||||
|
||||
CREATE TABLE test (col1, col2);
|
||||
|
||||
INSERT INTO test VALUES (1, 2);
|
||||
INSERT INTO test VALUES (2, 4);
|
||||
INSERT INTO test VALUES (3, 6);
|
||||
INSERT INTO test VALUES (4, 8);
|
||||
INSERT INTO test VALUES (5, 10);
|
||||
|
||||
]] )
|
||||
|
||||
|
||||
assert( db:set_aggregate("my_stats", 2, function()
|
||||
|
||||
local square_error_sum = 0
|
||||
|
||||
local function step(a, b)
|
||||
local error = a - b
|
||||
local square_error = error * error
|
||||
square_error_sum = square_error_sum + square_error
|
||||
end
|
||||
|
||||
local function final(num_called)
|
||||
return square_error_sum / num_called
|
||||
end
|
||||
|
||||
return step, final
|
||||
|
||||
end))
|
||||
|
||||
|
||||
local my_stats = db:first_cols("SELECT my_stats(col1, col2) FROM test")
|
||||
print("my_stats:", my_stats)
|
||||
Reference in New Issue
Block a user