summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/lsqlite3/examples/aggregate.lua
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2016-11-07 16:12:06 +0100
committer Miodrag Milanovic <mmicko@gmail.com>2016-11-07 16:12:06 +0100
commitcf4a8b9e0342e42f5c4e4f38e66b3cd96dd3fcc5 (patch)
tree1b5db9ba22e47ed67e0bf7f0534334af68d0b613 /3rdparty/lsqlite3/examples/aggregate.lua
parenta60731323599ab4d624adba7a73333037670430d (diff)
resurected sqlite3 and lsqlite3 (nw)
Diffstat (limited to '3rdparty/lsqlite3/examples/aggregate.lua')
-rw-r--r--3rdparty/lsqlite3/examples/aggregate.lua35
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