system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -i 1 system sh/exec.sh -n dnode1 -s start sql connect $dbPrefix = m_func_db $tbPrefix = m_func_tb $mtPrefix = m_func_mt $tbNum = 10 $rowNum = 5 $totalNum = $tbNum * $rowNum $ts0 = 1537146000000 $delta = 600000 print ========== alter.sim $i = 0 $db = $dbPrefix . $i $mt = $mtPrefix . $i sql drop database if exists $db sql create database $db keep 36500 sql use $db print =====================================> td-4481 sql create database $db print =====================================> test case for twa in single block sql create table t1 (ts timestamp, k float); sql insert into t1 values('2015-08-18 00:00:00', 2.064); sql insert into t1 values('2015-08-18 00:06:00', 2.116); sql insert into t1 values('2015-08-18 00:12:00', 2.028); sql insert into t1 values('2015-08-18 00:18:00', 2.126); sql insert into t1 values('2015-08-18 00:24:00', 2.041); sql insert into t1 values('2015-08-18 00:30:00', 2.051); sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:05:00' if $rows != 1 then return -1 endi if $data00 != 2.063999891 then return -1 endi if $data01 != 2.063999891 then return -1 endi if $data02 != 1 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:07:00' if $rows != 1 then return -1 endi if $data00 != 2.089999914 then return -1 endi if $data01 != 2.089999914 then return -1 endi if $data02 != 2 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:07:00' interval(1m) order by ts asc if $rows != 2 then return -1 endi if $data00 != @15-08-18 00:00:00.000@ then return -1 endi if $data01 != 2.068333156 then return -1 endi if $data02 != 2.063999891 then return -1 endi if $data03 != 1 then return -1 endi if $data10 != @15-08-18 00:06:00.000@ then return -1 endi if $data11 != 2.115999937 then return -1 endi if $data12 != 2.115999937 then return -1 endi if $data13 != 1 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:07:00' interval(1m) order by ts desc; if $rows != 2 then return -1 endi if $data00 != @15-08-18 00:06:00.000@ then return -1 endi if $data01 != 2.115999937 then return -1 endi if $data02 != 2.115999937 then return -1 endi if $data03 != 1 then return -1 endi if $data11 != 2.068333156 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:27:00' interval(10m) order by ts asc if $rows != 3 then return -1 endi if $data01 != 2.088666666 then return -1 endi if $data02 != 2.089999914 then return -1 endi if $data03 != 2 then return -1 endi if $data11 != 2.077099980 then return -1 endi if $data12 != 2.077000022 then return -1 endi if $data13 != 2 then return -1 endi if $data21 != 2.069333235 then return -1 endi if $data22 != 2.040999889 then return -1 endi if $data23 != 1 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:27:00' interval(10m) order by ts desc if $rows != 3 then return -1 endi if $data01 != 2.069333235 then return -1 endi if $data11 != 2.077099980 then return -1 endi if $data21 != 2.088666666 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:30:00' order by ts asc if $data00 != 2.073699975 then return -1 endi if $data01 != 2.070999980 then return -1 endi if $data02 != 6 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:30:00' order by ts desc if $rows != 1 then return -1 endi if $data00 != 2.073699975 then return -1 endi if $data01 != 2.070999980 then return -1 endi if $data02 != 6 then return -1 endi sql select twa(k) from t1 where ts>'2015-8-18 00:00:00' and ts<'2015-8-18 00:00:1' if $rows != 0 then return -1 endi sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:30:00' interval(10m) order by ts asc sql select twa(k),avg(k),count(1) from t1 where ts>='2015-8-18 00:00:00' and ts<='2015-8-18 00:30:00' interval(10m) order by ts desc #todo add test case while column filter exists for twa query #sql select count(*),TWA(k) from tm0 where ts>='1970-1-1 13:43:00' and ts<='1970-1-1 13:44:10' interval(9s) sql create table tm0 (ts timestamp, k float); sql insert into tm0 values(100000000, 5); sql insert into tm0 values(100003000, -9); sql select twa(k) from tm0 where ts td-2610 sql select twa(k)from tm1 where ts>='2020-11-19 18:11:45.773' and ts<='2020-12-9 18:11:17.098' if $rows != 0 then return -1 endi print =====================> td-2609 sql select apercentile(k, 50) from tm1 where ts>='2020-10-30 18:11:56.680' and ts<='2020-12-09 18:11:17.098' if $rows != 1 then return -1 endi if $data00 != -1000.000000000 then return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT sleep 1000 system sh/exec.sh -n dnode1 -s start print ================== server restart completed sql connect sleep 100 sql use m_func_db0 print =====================> td-2583 sql select min(k) from tm1 where ts>='2020-11-19 18:11:45.773' and ts<='2020-12-20 18:11:49.412' if $rows != 1 then return -1 endi if $data00 != 1 then print expect 1, actual: $data00 return -1 endi print =====================> td-2601 sql select count(*) from tm1 where ts<='2020-6-1 00:00:00' and ts>='2020-1-1 00:00:00' interval(1n) fill(NULL) if $rows != 0 then return -1 endi print =====================> td-2615 sql select last(ts) from tm1 interval(17a) limit 776 offset 3 if $rows != 3 then return -1 endi sql select last(ts) from tm1 interval(17a) limit 1000 offset 4 if $rows != 2 then return -1 endi sql select last(ts) from tm1 interval(17a) order by ts desc limit 1000 offset 0 if $rows != 6 then return -1 endi print =============================> TD-6086 sql create stable td6086st(ts timestamp, d double) tags(t nchar(50)); sql create table td6086ct1 using td6086st tags("ct1"); sql create table td6086ct2 using td6086st tags("ct2"); sql SELECT LAST(d),t FROM td6086st WHERE tbname in ('td6086ct1', 'td6086ct2') and ts>="2019-07-30 00:00:00" and ts<="2021-08-31 00:00:00" interval(1800s) fill(prev) GROUP BY tbname; print ==================> td-2624 sql create table tm2(ts timestamp, k int, b binary(12)); sql insert into tm2 values('2011-01-02 18:42:45.326', -1,'abc'); sql insert into tm2 values('2020-07-30 17:44:06.283', 0, null); sql insert into tm2 values('2020-07-30 17:44:19.578', 9999999, null); sql insert into tm2 values('2020-07-30 17:46:06.417', NULL, null); sql insert into tm2 values('2020-11-09 18:42:25.538', 0, null); sql insert into tm2 values('2020-12-29 17:43:11.641', 0, null); sql insert into tm2 values('2020-12-29 18:43:17.129', 0, null); sql insert into tm2 values('2020-12-29 18:46:19.109', NULL, null); sql insert into tm2 values('2021-01-03 18:40:40.065', 0, null); sql select twa(k),first(ts) from tm2 where k <50 interval(17s); if $rows != 6 then return -1 endi if $data00 != @11-01-02 18:42:42.000@ then return -1 endi if $data02 != @11-01-02 18:42:45.326@ then return -1 endi if $data10 != @20-07-30 17:43:59.000@ then return -1 endi if $data21 != 0.000000000 then return -1 endi sql select twa(k),first(ts) from tm2 where k <50 interval(17s) order by ts desc; if $rows != 6 then return -1 endi sql select twa(k),first(ts),count(k),first(k) from tm2 interval(17s) limit 20 offset 0; if $rows != 9 then return -1 endi if $data00 != @11-01-02 18:42:42.000@ then return -1 endi if $data10 != @20-07-30 17:43:59.000@ then return -1 endi print =================>td-2610 sql select stddev(k) from tm2 where ts='2020-12-29 18:46:19.109' if $rows != 0 then print expect 0, actual:$rows return -1 endi sql select twa(k) from tm2 where ts='2020-12-29 18:46:19.109' if $rows != 0 then return -1 endi print ========================> TD-1787 sql create table cars(ts timestamp, c int) tags(id int); sql create table car1 using cars tags(1); sql create table car2 using cars tags(2); sql insert into car1 (ts, c) values (now,1) car2(ts, c) values(now, 2); sql drop table cars; sql create table cars(ts timestamp, c int) tags(id int); sql create table car1 using cars tags(1); sql create table car2 using cars tags(2); sql insert into car1 (ts, c) values (now,1) car2(ts, c) values(now, 2); print ========================> TD-2700 sql create table tx(ts timestamp, k int); sql insert into tx values(1500000001000, 0); sql select sum(k) from tx interval(1d) sliding(1h); if $rows != 24 then print expect 24, actual:$rows return -1 endi print ========================> TD-3948 sql drop table if exists meters sql create stable meters (ts timestamp, current float, voltage int, phase float) tags (location binary(64), groupId int); sql_error insert into td3948Err1(phase) using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2); sql_error insert into td3948Err2(phase, voltage) using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2); sql_error insert into td3948Err3(phase, current) using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2); sql insert into td3948 using meters tags ("Beijng.Chaoyang", 2) (ts, current) values (now, 10.2); sql select count(ts) from td3948; if $rows != 1 then print expect 1, actual:$rows return -1 endi print ========================> TD-2740 sql drop table if exists m1; sql create table m1(ts timestamp, k int) tags(a int); sql create table tm10 using m1 tags(0); sql create table tm11 using m1 tags(1); sql create table tm12 using m1 tags(2); sql create table tm13 using m1 tags(3); sql insert into tm10 values('2020-1-1 1:1:1', 0); sql insert into tm11 values('2020-1-5 1:1:1', 0); sql insert into tm12 values('2020-1-7 1:1:1', 0); sql insert into tm13 values('2020-1-1 1:1:1', 0); sql select count(*) from m1 where ts='2020-1-1 1:1:1' interval(1h) group by tbname; if $rows != 2 then return -1 endi sql drop table m1; sql drop table if exists tm1; sql drop table if exists tm2; sql create table m1(ts timestamp, k double, b double, c int, d smallint, e int unsigned) tags(a int); sql create table tm1 using m1 tags(1); sql create table tm2 using m1 tags(2); sql insert into tm1 values('2021-01-27 22:22:39.294', 1, 10, NULL, 110, 123) ('2021-01-27 22:22:40.294', 2, 20, NULL, 120, 124) ('2021-01-27 22:22:41.294', 3, 30, NULL, 130, 125)('2021-01-27 22:22:43.294', 4, 40, NULL, 140, 126)('2021-01-27 22:22:44.294', 5, 50, NULL, 150, 127); sql insert into tm2 values('2021-01-27 22:22:40.688', 5, 101, NULL, 210, 321) ('2021-01-27 22:22:41.688', 5, 102, NULL, 220, 322) ('2021-01-27 22:22:42.688', 5, 103, NULL, 230, 323)('2021-01-27 22:22:43.688', 5, 104, NULL, 240, 324)('2021-01-27 22:22:44.688', 5, 105, NULL, 250, 325)('2021-01-27 22:22:45.688', 5, 106, NULL, 260, 326); sql select stddev(k) from m1 if $rows != 1 then return -1 endi if $data00 != 1.378704626 then return -1 endi sql select stddev(c) from m1 if $rows != 0 then return -1 endi sql select stddev(k), stddev(c) from m1 if $rows != 1 then return -1 endi if $data00 != 1.378704626 then return -1 endi if $data01 != NULL then return -1; endi sql select stddev(b),stddev(b),stddev(k) from m1; if $rows != 1 then return -1 endi if $data00 != 37.840465463 then return -1 endi if $data01 != 37.840465463 then return -1 endi if $data02 != 1.378704626 then return -1 endi sql select stddev(k), stddev(b) from m1 group by a if $rows != 2 then return -1 endi if $data00 != 1.414213562 then return -1 endi if $data01 != 14.142135624 then return -1 endi if $data02 != 1 then return -1 endi if $data10 != 0.000000000 then return -1 endi if $data11 != 1.707825128 then return -1 endi if $data12 != 2 then return -1 endi sql select stddev(k), stddev(b) from m1 where a= 1 group by a if $rows != 1 then return -1 endi if $data00 != 1.414213562 then return -1 endi if $data01 != 14.142135624 then return -1 endi if $data02 != 1 then return -1 endi sql select stddev(k), stddev(b) from m1 group by tbname if $rows != 2 then return -1 endi if $data00 != 1.414213562 then return -1 endi if $data01 != 14.142135624 then return -1 endi if $data02 != @tm1@ then return -1 endi if $data10 != 0.000000000 then return -1 endi if $data11 != 1.707825128 then return -1 endi if $data12 != @tm2@ then return -1 endi sql select stddev(k), stddev(b) from m1 group by tbname,a if $rows != 2 then return -1 endi sql select stddev(k), stddev(b), stddev(c) from m1 group by tbname,a if $rows != 2 then return -1 endi if $data00 != 1.414213562 then return -1 endi if $data01 != 14.142135624 then return -1 endi if $data02 != NULL then return -1 endi if $data03 != @tm1@ then return -1 endi if $data04 != 1 then return -1 endi if $data10 != 0.000000000 then return -1 endi if $data11 != 1.707825128 then return -1 endi if $data12 != NULL then return -1 endi if $data13 != @tm2@ then return -1 endi if $data14 != 2 then return -1 endi sql select stddev(k), stddev(b), stddev(c) from m1 interval(10s) group by tbname,a if $rows != 3 then return -1 endi if $data01 != 0.000000000 then return -1 endi if $data02 != 0.000000000 then return -1 endi if $data03 != NULL then return -1 endi if $data04 != @tm1@ then return -1 endi if $data05 != 1 then return -1 endi if $data11 != 1.118033989 then return -1 endi if $data12 != 11.180339887 then return -1 endi if $data13 != NULL then return -1 endi if $data14 != @tm1@ then return -1 endi if $data22 != 1.707825128 then return -1 endi if $data23 != NULL then return -1 endi if $data24 != @tm2@ then return -1 endi if $data25 != 2 then return -1 endi sql select count(*), first(b), stddev(b), stddev(c) from m1 interval(10s) group by a if $rows != 3 then return -1 endi if $data00 != @21-01-27 22:22:30.000@ then return -1 endi if $data01 != 1 then return -1 endi if $data02 != 10.000000000 then return -1 endi if $data03 != 0.000000000 then return -1 endi if $data04 != NULL then return -1 endi if $data05 != 1 then return -1 endi if $data12 != 20.000000000 then return -1 endi if $data13 != 11.180339887 then return -1 endi if $data14 != NULL then return -1 endi if $data23 != 1.707825128 then return -1 endi sql select count(*), first(b), stddev(b), stddev(c) from m1 interval(10s) group by tbname,a if $rows != 3 then return -1 endi if $data23 != 1.707825128 then return -1 endi if $data25 != @tm2@ then return -1 endi sql select count(*), stddev(b), stddev(b)+20, stddev(c) from m1 interval(10s) group by tbname,a if $rows != 3 then return -1 endi if $data02 != 0.000000000 then return -1 endi if $data03 != 20.000000000 then return -1 endi if $data13 != 31.180339887 then return -1 endi if $data14 != NULL then return -1 endi sql select count(*), first(b), stddev(b)+first(b), stddev(c) from m1 interval(10s) group by tbname,a if $rows != 3 then return -1 endi if $data02 != 10.000000000 then return -1 endi if $data03 != 10.000000000 then return -1 endi if $data12 != 20.000000000 then return -1 endi if $data13 != 31.180339887 then return -1 endi if $data22 != 101.000000000 then return -1 endi if $data23 != 102.707825128 then return -1 endi sql select stddev(e),stddev(k) from m1 where a=1 if $rows != 1 then return -1 endi if $data00 != 1.414213562 then return -1 endi if $data01 != 1.414213562 then return -1 endi sql create stable st1 (ts timestamp, f1 int, f2 int) tags (id int); sql create table tb1 using st1 tags(1); sql insert into tb1 values ('2021-07-02 00:00:00', 1, 1); sql select stddev(f1) from st1 group by f1; if $rows != 1 then return -1 endi if $data00 != 0.000000000 then return -1 endi sql select count(tbname) from st1 if $rows != 1 then return -1 endi if $data00 != 1 then return -1 endi sql select count(id) from st1 if $rows != 1 then return -1 endi if $data00 != 1 then return -1 endi print ====================> TODO stddev + normal column filter print ====================> irate sql_error select irate(f1) from st1; sql select irate(f1) from st1 group by tbname; sql select irate(k) from t1 if $rows != 1 then return -1 endi if $data00 != 0.000027778 then return -1 endi sql select irate(k) from t1 where ts>='2015-8-18 00:30:00.000' if $rows != 1 then return -1 endi if $data00 != 0.000000000 then print expect 0.000000000, actual $data00 return -1 endi sql select irate(k) from t1 where ts>='2015-8-18 00:06:00.000' and ts<='2015-8-18 00:12:000'; if $rows != 1 then return -1 endi if $data00 != 0.005633334 then return -1 endi sql select irate(k) from t1 interval(10a) if $rows != 6 then return -1 endi if $data01 != 0.000000000 then return -1 endi if $data11 != 0.000000000 then return -1 endi if $data51 != 0.000000000 then return -1 endi sql select count(*),irate(k) from t1 interval(10m) if $rows != 4 then return -1 endi if $data00 != @15-08-18 00:00:00.000@ then return -1 endi if $data01 != 2 then return -1 endi if $data02 != 0.000144445 then return -1 endi if $data10 != @15-08-18 00:10:00.000@ then return -1 endi if $data11 != 2 then return -1 endi if $data12 != 0.000272222 then return -1 endi if $data20 != @15-08-18 00:20:00.000@ then return -1 endi if $data21 != 1 then return -1 endi if $data22 != 0.000000000 then return -1 endi if $data30 != @15-08-18 00:30:00.000@ then return -1 endi if $data31 != 1 then return -1 endi if $data32 != 0.000000000 then return -1 endi sql select count(*),irate(k) from t1 interval(10m) order by ts desc if $rows != 4 then return -1 endi if $data30 != @15-08-18 00:00:00.000@ then return -1 endi if $data31 != 2 then return -1 endi if $data32 != 0.000144445 then return -1 endi print ===========================> derivative sql drop table t1 sql drop table tx; sql drop table if exists m1; sql drop table if exists tm0; sql drop table if exists tm1; sql create table tm0(ts timestamp, k double) sql insert into tm0 values('2015-08-18T00:00:00Z', 2.064) ('2015-08-18T00:06:00Z', 2.116) ('2015-08-18T00:12:00Z', 2.028) sql insert into tm0 values('2015-08-18T00:18:00Z', 2.126) ('2015-08-18T00:24:00Z', 2.041) ('2015-08-18T00:30:00Z', 2.051) sql_error select derivative(ts) from tm0; sql_error select derivative(k) from tm0; sql_error select derivative(k, 0, 0) from tm0; sql_error select derivative(k, 1, 911) from tm0; sql_error select derivative(kx, 1s, 1) from tm0; sql_error select derivative(k, -20s, 1) from tm0; sql_error select derivative(k, 20a, 0) from tm0; sql_error select derivative(k, 200a, 0) from tm0; sql_error select derivative(k, 999a, 0) from tm0; sql_error select derivative(k, 20s, -12) from tm0; sql select derivative(k, 1s, 0) from tm0 if $rows != 5 then return -1 endi if $data00 != @15-08-18 08:06:00.000@ then return -1 endi if $data01 != 0.000144444 then print expect 0.000144444, actual: $data01 return -1 endi if $data10 != @15-08-18 08:12:00.000@ then return -1 endi if $data11 != -0.000244444 then return -1 endi if $data20 != @15-08-18 08:18:00.000@ then return -1 endi if $data21 != 0.000272222 then print expect 0.000272222, actual: $data21 return -1 endi if $data30 != @15-08-18 08:24:00.000@ then return -1 endi if $data31 != -0.000236111 then print expect 0.000236111, actual: $data31 return -1 endi sql select derivative(k, 6m, 0) from tm0; if $rows != 5 then return -1 endi if $data00 != @15-08-18 08:06:00.000@ then return -1 endi if $data01 != 0.052000000 then print expect 0.052000000, actual: $data01 return -1 endi if $data10 != @15-08-18 08:12:00.000@ then return -1 endi if $data11 != -0.088000000 then return -1 endi if $data20 != @15-08-18 08:18:00.000@ then return -1 endi if $data21 != 0.098000000 then return -1 endi if $data30 != @15-08-18 08:24:00.000@ then return -1 endi if $data31 != -0.085000000 then return -1 endi sql select derivative(k, 12m, 0) from tm0; if $rows != 5 then return -1 endi if $data00 != @15-08-18 08:06:00.000@ then return -1 endi if $data01 != 0.104000000 then print expect 0.104000000, actual: $data01 return -1 endi sql select derivative(k, 6m, 1) from tm0; if $rows != 3 then return -1 endi sql_error select derivative(k, 6m, 1) from tm0 interval(1s); sql_error select derivative(k, 6m, 1) from tm0 session(ts, 1s); sql_error select derivative(k, 6m, 1) from tm0 group by k; sql drop table if exists tm0 sql drop table if exists m1 sql create table m1 (ts timestamp, k double ) tags(a int); sql create table if not exists t0 using m1 tags(1); sql create table if not exists t1 using m1 tags(2); sql insert into t0 values('2020-1-1 1:1:1', 1); sql insert into t0 values('2020-1-1 1:1:3', 3); sql insert into t0 values('2020-1-1 1:2:4', 4); sql insert into t0 values('2020-1-1 1:2:5', 5); sql insert into t0 values('2020-1-1 1:2:6', 6); sql insert into t0 values('2020-1-1 1:3:7', 7); sql insert into t0 values('2020-1-1 1:3:8', 8); sql insert into t0 values('2020-1-1 1:3:9', 9); sql insert into t0 values('2020-1-1 1:4:10', 10); sql insert into t1 values('2020-1-1 1:1:2', 2); print ===========================>td-4739 sql select diff(val) from (select derivative(k, 1s, 0) val from t1); if $rows != 0 then return -1 endi sql insert into t1 values('2020-1-1 1:1:4', 20); sql insert into t1 values('2020-1-1 1:1:6', 200); sql insert into t1 values('2020-1-1 1:1:8', 2000); sql insert into t1 values('2020-1-1 1:1:10', 20000); sql_error select derivative(k, 1s, 0) from m1; sql_error select derivative(k, 1s, 0) from m1 group by a; sql_error select derivative(f1, 1s, 0) from (select k from t1); sql select derivative(k, 1s, 0) from m1 group by tbname if $rows != 12 then return -1 endi if $data00 != @20-01-01 01:01:03.000@ then return -1 endi if $data01 != 1.000000000 then return -1 endi if $data02 != @t0@ then return -1 endi if $data10 != @20-01-01 01:02:04.000@ then return -1 endi if $data11 != 0.016393443 then return -1 endi if $data12 != t0 then return -1 endi if $data90 != @20-01-01 01:01:06.000@ then return -1 endi if $data91 != 90.000000000 then return -1 endi if $data92 != t1 then return -1 endi print =========================>TD-5190 sql select stddev(f1) from st1 where ts>'2021-07-01 1:1:1' and ts<'2021-07-30 00:00:00' interval(1d) fill(NULL); if $rows != 29 then return -1 endi if $data00 != @21-07-01 00:00:00.000@ then return -1 endi if $data01 != NULL then return -1 endi sql select derivative(test_column_alias_name, 1s, 0) from (select avg(k) test_column_alias_name from t1 interval(1s)); sql create table smeters (ts timestamp, current float, voltage int) tags (t1 int); sql create table smeter1 using smeters tags (1); sql insert into smeter1 values ('2021-08-08 10:10:10', 10, 2); sql insert into smeter1 values ('2021-08-08 10:10:12', 10, 2); sql insert into smeter1 values ('2021-08-08 10:10:14', 20, 1); sql select stddev(voltage) from smeters where ts>='2021-08-08 10:10:10.000' and ts < '2021-08-08 10:10:20.000' and current=10 interval(1000a); if $rows != 2 then return -1 endi if $data00 != @21-08-08 10:10:10.000@ then return -1 endi if $data01 != 0.000000000 then return -1 endi if $data10 != @21-08-08 10:10:12.000@ then return -1 endi if $data11 != 0.000000000 then return -1 endi sql select stddev(voltage) from smeters where ts>='2021-08-08 10:10:10.000' and ts < '2021-08-08 10:10:20.000' and current=10; if $rows != 1 then return -1 endi if $data00 != 0.000000000 then return -1 endi