Cloud Spanner 函数中是否有等效的 STDDEV?
Is there a STDDEV equivalent in Cloud Spanner functions?
我在 the documentation 中没有看到它;它可能是我没有注意到的现有功能的一部分,还是以其他方式可用?
您发来的官方文档中没有这个功能,估计现在还没有。如果您需要类似的东西,您可能应该自己以编程方式计算标准差。您有条目数的 AVG function that helps you get at least the median value which will be helpful in the calculation of the standard deviation and the COUNT 函数。
double standardDeviation ; // standard deviation
double sumOfDiffrences = 0;
for ( int i = 0; i < count; i++ ){
sumOfDiffrences = sumOfDiffrences + pow((entry(i)-avg),2); // entry(i) is an entry of the column you want to create the S.D.
}
standardDeviation = sqrt((sumOfDiffrences)/(count-1));
正如 Andrei Tigau 所提到的,目前还不支持 STDDEV。也就是说,您需要分两次计算。假设您对 YourTable 的 x 列感兴趣,
SELECT SQRT(SUM(POW(x - avg, 2)/(n-1)))
FROM (SELECT AVG(x) AS avg, COUNT(*) AS n FROM YourTable)
CROSS JOIN YourTable;
您也可以尝试遵循一次性解决方案。
SELECT SQRT(s2/(n-1) - POW(s/n, 2))
FROM (
SELECT COUNT(*) AS n, SUM(x) AS s, SUM(x*x) AS s2
FROM YourTable
);
根据类型,您可能必须将其强制转换为 double(尤其是对于 s2)以避免溢出。两者都会出现浮点错误。
STDDEV
自 2020 年 6 月 3 日起受支持。
https://cloud.google.com/spanner/docs/release-notes?hl=en#June_03_2020
我在 the documentation 中没有看到它;它可能是我没有注意到的现有功能的一部分,还是以其他方式可用?
您发来的官方文档中没有这个功能,估计现在还没有。如果您需要类似的东西,您可能应该自己以编程方式计算标准差。您有条目数的 AVG function that helps you get at least the median value which will be helpful in the calculation of the standard deviation and the COUNT 函数。
double standardDeviation ; // standard deviation
double sumOfDiffrences = 0;
for ( int i = 0; i < count; i++ ){
sumOfDiffrences = sumOfDiffrences + pow((entry(i)-avg),2); // entry(i) is an entry of the column you want to create the S.D.
}
standardDeviation = sqrt((sumOfDiffrences)/(count-1));
正如 Andrei Tigau 所提到的,目前还不支持 STDDEV。也就是说,您需要分两次计算。假设您对 YourTable 的 x 列感兴趣,
SELECT SQRT(SUM(POW(x - avg, 2)/(n-1)))
FROM (SELECT AVG(x) AS avg, COUNT(*) AS n FROM YourTable)
CROSS JOIN YourTable;
您也可以尝试遵循一次性解决方案。
SELECT SQRT(s2/(n-1) - POW(s/n, 2))
FROM (
SELECT COUNT(*) AS n, SUM(x) AS s, SUM(x*x) AS s2
FROM YourTable
);
根据类型,您可能必须将其强制转换为 double(尤其是对于 s2)以避免溢出。两者都会出现浮点错误。
STDDEV
自 2020 年 6 月 3 日起受支持。
https://cloud.google.com/spanner/docs/release-notes?hl=en#June_03_2020