gpt4 book ai didi

mysql - 在mysql workbench中实现标准差函数

转载 作者:行者123 更新时间:2023-11-29 07:32:18 28 4
gpt4 key购买 nike

你好,我是 mysql 的新手,我正在尝试创建一个简单的函数来计算给定列的标准偏差作为该函数的参数。我在创建 for 循环和递增 var 变量时遇到问题。任何帮助,将不胜感激。

CREATE FUNCTION `Stdev` (col varchar(10))
RETURNS decimal(8,5)
BEGIN
SELECT @col :=
SELECT @mean := AVG(col) FROM mytable ;
simple_loop: loop
BEGIN
SELECT @var := POWER(@mean - (SELECT col FROM mytable),2);


SELECT @stdev := POWER(@var,0.5)
RETURN @stdev;
END

最佳答案

SQL 已经有一个标准偏差函数,stddev_pop .


但是如果你真的想自己写...

虽然您可以在 SQL 中编写循环,但这通常意味着您的效率很低。 SQL 是一种非常高效地迭代大型数据集的引擎。如果您自己执行循环,则您没有利用 SQL。

正在关注 the algorithm for standard deviation ,我们可以将此查询构建为一系列子选择。

  1. 取平均值。

    select avg(num) as mean
    from foo;
  2. 计算与均值的差并平方。

    select pow(num - mean, 2) as sqdiff
    from foo,
    (select avg(num) as mean from foo) as mean;
  3. 取差的均值并取平方根。

    select pow(avg(sqdiff), 0.5) as stddev
    from (
    select pow(num - mean, 2) as sqdiff
    from foo,
    (select avg(num) as mean from foo) as mean
    ) as sqdiff

关于mysql - 在mysql workbench中实现标准差函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705577/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com