我正在尝试编写一条MySQL查询,用于计算数值列的标准差,而不使用STD()函数。我的工作查询如下:
SELECT sqrt(power((amount-avg(amount)),2)/count(amount))
FROM Orders;
请将“amount”视为列名,“Orders”视为表名。我的问题是,为什么会自动对所有结果进行power((amount-avg(amount)),2)的求和,而不使用sum函数?
谢谢!
我正在尝试编写一条MySQL查询,用于计算数值列的标准差,而不使用STD()函数。我的工作查询如下:
SELECT sqrt(power((amount-avg(amount)),2)/count(amount))
FROM Orders;
SELECT @avg:=(SELECT avg(amount) FROM Orders), @cnt:=(SELECT count(*) FROM Orders),
SQRT(SUM(POWER(amount-@avg,2)/@cnt)) as std
FROM Orders
你的amount
列没有计算总和。它是你表格中某一行的值。