diff options
author | 2016-11-07 16:12:06 +0100 | |
---|---|---|
committer | 2016-11-07 16:12:06 +0100 | |
commit | cf4a8b9e0342e42f5c4e4f38e66b3cd96dd3fcc5 (patch) | |
tree | 1b5db9ba22e47ed67e0bf7f0534334af68d0b613 /3rdparty/lsqlite3/examples/aggregate.lua | |
parent | a60731323599ab4d624adba7a73333037670430d (diff) |
resurected sqlite3 and lsqlite3 (nw)
Diffstat (limited to '3rdparty/lsqlite3/examples/aggregate.lua')
-rw-r--r-- | 3rdparty/lsqlite3/examples/aggregate.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/3rdparty/lsqlite3/examples/aggregate.lua b/3rdparty/lsqlite3/examples/aggregate.lua new file mode 100644 index 00000000000..6087b0c65cc --- /dev/null +++ b/3rdparty/lsqlite3/examples/aggregate.lua @@ -0,0 +1,35 @@ + +local sqlite3 = require("lsqlite3") + +local db = sqlite3.open_memory() + +assert( db:exec "CREATE TABLE test (col1, col2)" ) +assert( db:exec "INSERT INTO test VALUES (1, 2)" ) +assert( db:exec "INSERT INTO test VALUES (2, 4)" ) +assert( db:exec "INSERT INTO test VALUES (3, 6)" ) +assert( db:exec "INSERT INTO test VALUES (4, 8)" ) +assert( db:exec "INSERT INTO test VALUES (5, 10)" ) + +do + + local square_error_sum = 0 + + local function step(ctx, a, b) + local error = a - b + local square_error = error * error + square_error_sum = square_error_sum + square_error + end + + local function final(ctx) + ctx:result_number( square_error_sum / ctx:aggregate_count() ) + end + + assert( db:create_aggregate("my_stats", 2, step, final) ) + +end + +--for a,b in db:urows("SELECT col1, col2 FROM test") +--do print("a b: ", a, b) end + +for my_stats in db:urows("SELECT my_stats(col1, col2) FROM test") +do print("my_stats:", my_stats) end |