mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-09-11 16:02:19 +00:00
* feat(function): add Welford stddev functions Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * test(function): cover merged Welford time windows Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * refactor(function): use stddev_pop SQL names Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * fix(function): make Welford arithmetic partition-stable Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * fix(function): reject invalid singleton Welford states Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * test(function): pin Welford state compatibility Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * refactor(function): remove unreachable variance clamp Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * fix(function): reject DISTINCT Welford aggregates Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> * test(compat): bound Welford downgrade targets Signed-off-by: Lei, HUANG <ratuthomm@gmail.com> --------- Signed-off-by: Lei, HUANG <ratuthomm@gmail.com>
27 lines
528 B
SQL
27 lines
528 B
SQL
CREATE TABLE stddev_values (
|
|
seq_id INT PRIMARY KEY,
|
|
grp INT,
|
|
val DOUBLE,
|
|
ts TIMESTAMP TIME INDEX DEFAULT now()
|
|
);
|
|
|
|
INSERT INTO stddev_values (seq_id, grp, val) VALUES
|
|
(1, 0, 1.0),
|
|
(2, 0, 2.0),
|
|
(3, 1, 3.0),
|
|
(4, 1, 4.0);
|
|
|
|
CREATE TABLE stddev_states (
|
|
grp INT PRIMARY KEY,
|
|
state BINARY,
|
|
ts TIMESTAMP TIME INDEX DEFAULT now()
|
|
);
|
|
|
|
INSERT INTO stddev_states (grp, state)
|
|
SELECT grp, stddev_pop_state(val)
|
|
FROM stddev_values
|
|
GROUP BY grp;
|
|
|
|
ADMIN FLUSH_TABLE('stddev_values');
|
|
ADMIN FLUSH_TABLE('stddev_states');
|