@@ -7887,6 +7887,226 @@ where
7887
7887
},
7888
7888
},
7889
7889
},
7890
+ {
7891
+ Name : "std, stdev, stddev_pop, variance, var_pop, var_samp tests" ,
7892
+ Dialect : "mysql" ,
7893
+ SetUpScript : []string {
7894
+ "create table t (i int);" ,
7895
+ "create table tt (i int, j int);" ,
7896
+ "insert into tt values (0, 1), (0, 2), (0, 3);" ,
7897
+ "insert into tt values (1, 123), (1, 456), (1, 789);" ,
7898
+ },
7899
+ Assertions : []ScriptTestAssertion {
7900
+ {
7901
+ Query : "select std(i), stddev(i), stddev_pop(i), stddev_samp(i) from t;" ,
7902
+ Expected : []sql.Row {
7903
+ {nil , nil , nil , nil },
7904
+ },
7905
+ },
7906
+ {
7907
+ Query : "select variance(i), var_pop(i), var_samp(i) from t;" ,
7908
+ Expected : []sql.Row {
7909
+ {nil , nil , nil },
7910
+ },
7911
+ },
7912
+ {
7913
+ Query : "insert into t values (1);" ,
7914
+ Expected : []sql.Row {
7915
+ {types .NewOkResult (1 )},
7916
+ },
7917
+ },
7918
+ {
7919
+ Query : "select std(i), stddev(i), stddev_pop(i), stddev_samp(i) from t;" ,
7920
+ Expected : []sql.Row {
7921
+ {0.0 , 0.0 , 0.0 , nil },
7922
+ },
7923
+ },
7924
+ {
7925
+ Query : "select variance(i), var_pop(i), var_samp(i) from t;" ,
7926
+ Expected : []sql.Row {
7927
+ {0.0 , 0.0 , nil },
7928
+ },
7929
+ },
7930
+ {
7931
+ Query : "insert into t values (2);" ,
7932
+ Expected : []sql.Row {
7933
+ {types .NewOkResult (1 )},
7934
+ },
7935
+ },
7936
+ {
7937
+ Query : "select std(i), stddev(i), stddev_pop(i), stddev_samp(i) from t;" ,
7938
+ Expected : []sql.Row {
7939
+ {0.5 , 0.5 , 0.5 , 0.7071067811865476 },
7940
+ },
7941
+ },
7942
+ {
7943
+ Query : "select variance(i), var_pop(i), var_samp(i) from t;" ,
7944
+ Expected : []sql.Row {
7945
+ {0.25 , 0.25 , 0.5 },
7946
+ },
7947
+ },
7948
+ {
7949
+ Query : "insert into t values (3);" ,
7950
+ Expected : []sql.Row {
7951
+ {types .NewOkResult (1 )},
7952
+ },
7953
+ },
7954
+ {
7955
+ Query : "select std(i), stddev(i), stddev_pop(i), stddev_samp(i) from t;" ,
7956
+ Expected : []sql.Row {
7957
+ {0.816496580927726 , 0.816496580927726 , 0.816496580927726 , 1.0 },
7958
+ },
7959
+ },
7960
+ {
7961
+ Query : "select variance(i), var_pop(i), var_samp(i) from t;" ,
7962
+ Expected : []sql.Row {
7963
+ {0.6666666666666666 , 0.6666666666666666 , 1.0 },
7964
+ },
7965
+ },
7966
+ {
7967
+ Query : "insert into t values (null), (null);" ,
7968
+ Expected : []sql.Row {
7969
+ {types .NewOkResult (2 )},
7970
+ },
7971
+ },
7972
+ {
7973
+ Query : "select std(i), stddev(i), stddev_pop(i), stddev_samp(i) from t;" ,
7974
+ Expected : []sql.Row {
7975
+ {0.816496580927726 , 0.816496580927726 , 0.816496580927726 , 1.0 },
7976
+ },
7977
+ },
7978
+ {
7979
+ Query : "select variance(i), var_pop(i), var_samp(i) from t;" ,
7980
+ Expected : []sql.Row {
7981
+ {0.6666666666666666 , 0.6666666666666666 , 1.0 },
7982
+ },
7983
+ },
7984
+ {
7985
+ Query : "select i, std(j), stddev_samp(j) from tt group by i;" ,
7986
+ Expected : []sql.Row {
7987
+ {0 , 0.816496580927726 , 1.0 },
7988
+ {1 , 271.89336144893275 , 333.0 },
7989
+ },
7990
+ },
7991
+ {
7992
+ Query : "select i, variance(i), var_samp(i) from tt group by i;" ,
7993
+ Expected : []sql.Row {
7994
+ {0 , 0.0 , 0.0 },
7995
+ {1 , 0.0 , 0.0 },
7996
+ },
7997
+ },
7998
+ {
7999
+ Query : "select std(i) over(), std(j) over(), stddev_samp(j) over() from tt order by i;" ,
8000
+ Expected : []sql.Row {
8001
+ {0.5 , 297.47660972475353 , 325.86929895281634 },
8002
+ {0.5 , 297.47660972475353 , 325.86929895281634 },
8003
+ {0.5 , 297.47660972475353 , 325.86929895281634 },
8004
+ {0.5 , 297.47660972475353 , 325.86929895281634 },
8005
+ {0.5 , 297.47660972475353 , 325.86929895281634 },
8006
+ {0.5 , 297.47660972475353 , 325.86929895281634 },
8007
+ },
8008
+ },
8009
+ {
8010
+ Query : "select i, std(j) over(partition by i), stddev_samp(j) over(partition by i) from tt order by i;" ,
8011
+ Expected : []sql.Row {
8012
+ {0 , 0.816496580927726 , 1.0 },
8013
+ {0 , 0.816496580927726 , 1.0 },
8014
+ {0 , 0.816496580927726 , 1.0 },
8015
+ {1 , 271.89336144893275 , 333.0 },
8016
+ {1 , 271.89336144893275 , 333.0 },
8017
+ {1 , 271.89336144893275 , 333.0 },
8018
+ },
8019
+ },
8020
+ {
8021
+ Query : "select i, variance(i) over(), var_samp(i) over() from tt order by i;" ,
8022
+ Expected : []sql.Row {
8023
+ {0 , 0.25 , 0.3 },
8024
+ {0 , 0.25 , 0.3 },
8025
+ {0 , 0.25 , 0.3 },
8026
+ {1 , 0.25 , 0.3 },
8027
+ {1 , 0.25 , 0.3 },
8028
+ {1 , 0.25 , 0.3 },
8029
+ },
8030
+ },
8031
+ {
8032
+ Query : "select i, variance(j) over(partition by i), var_samp(i) over(partition by i) from tt order by i;" ,
8033
+ Expected : []sql.Row {
8034
+ {0 , 0.6666666666666666 , 0.0 },
8035
+ {0 , 0.6666666666666666 , 0.0 },
8036
+ {0 , 0.6666666666666666 , 0.0 },
8037
+ {1 , 73926.0 , 0.0 },
8038
+ {1 , 73926.0 , 0.0 },
8039
+ {1 , 73926.0 , 0.0 },
8040
+ },
8041
+ },
8042
+ {
8043
+ Query : "insert into tt values (null, null);" ,
8044
+ Expected : []sql.Row {
8045
+ {types .NewOkResult (1 )},
8046
+ },
8047
+ },
8048
+ {
8049
+ Query : "select i, std(i) over(), std(j) over(), stddev_samp(j) over() from tt order by i;" ,
8050
+ Expected : []sql.Row {
8051
+ {nil , 0.5 , 297.47660972475353 , 325.86929895281634 },
8052
+ {0 , 0.5 , 297.47660972475353 , 325.86929895281634 },
8053
+ {0 , 0.5 , 297.47660972475353 , 325.86929895281634 },
8054
+ {0 , 0.5 , 297.47660972475353 , 325.86929895281634 },
8055
+ {1 , 0.5 , 297.47660972475353 , 325.86929895281634 },
8056
+ {1 , 0.5 , 297.47660972475353 , 325.86929895281634 },
8057
+ {1 , 0.5 , 297.47660972475353 , 325.86929895281634 },
8058
+ },
8059
+ },
8060
+ {
8061
+ Query : "select i, std(j) over(partition by i), stddev_samp(j) over(partition by i) from tt order by i;" ,
8062
+ Expected : []sql.Row {
8063
+ {nil , nil , nil },
8064
+ {0 , 0.816496580927726 , 1.0 },
8065
+ {0 , 0.816496580927726 , 1.0 },
8066
+ {0 , 0.816496580927726 , 1.0 },
8067
+ {1 , 271.89336144893275 , 333.0 },
8068
+ {1 , 271.89336144893275 , 333.0 },
8069
+ {1 , 271.89336144893275 , 333.0 },
8070
+ },
8071
+ },
8072
+ {
8073
+ Query : "select i, variance(i) over(), var_samp(i) over() from tt order by i;" ,
8074
+ Expected : []sql.Row {
8075
+ {nil , 0.25 , 0.3 },
8076
+ {0 , 0.25 , 0.3 },
8077
+ {0 , 0.25 , 0.3 },
8078
+ {0 , 0.25 , 0.3 },
8079
+ {1 , 0.25 , 0.3 },
8080
+ {1 , 0.25 , 0.3 },
8081
+ {1 , 0.25 , 0.3 },
8082
+ },
8083
+ },
8084
+ {
8085
+ Query : "select i, variance(j) over(partition by i), var_samp(i) over(partition by i) from tt order by i;" ,
8086
+ Expected : []sql.Row {
8087
+ {nil , nil , nil },
8088
+ {0 , 0.6666666666666666 , 0.0 },
8089
+ {0 , 0.6666666666666666 , 0.0 },
8090
+ {0 , 0.6666666666666666 , 0.0 },
8091
+ {1 , 73926.0 , 0.0 },
8092
+ {1 , 73926.0 , 0.0 },
8093
+ {1 , 73926.0 , 0.0 },
8094
+ },
8095
+ },
8096
+ {
8097
+ Query : "select i, stddev_pop(j) over w, stddev_samp(j) over w, variance(j) over w, var_samp(i) over w from tt window w as (partition by i) order by i;" ,
8098
+ Expected : []sql.Row {
8099
+ {nil , nil , nil , nil , nil },
8100
+ {0 , 0.816496580927726 , 1.0 , 0.6666666666666666 , 0.0 },
8101
+ {0 , 0.816496580927726 , 1.0 , 0.6666666666666666 , 0.0 },
8102
+ {0 , 0.816496580927726 , 1.0 , 0.6666666666666666 , 0.0 },
8103
+ {1 , 271.89336144893275 , 333.0 , 73926.0 , 0.0 },
8104
+ {1 , 271.89336144893275 , 333.0 , 73926.0 , 0.0 },
8105
+ {1 , 271.89336144893275 , 333.0 , 73926.0 , 0.0 },
8106
+ },
8107
+ },
8108
+ },
8109
+ },
7890
8110
}
7891
8111
7892
8112
var SpatialScriptTests = []ScriptTest {
0 commit comments