这是我的SQL:
SELECT
AVG(
case
WHEN `price` > (avg(`price`) - stddev_pop(`price`)) \
AND `price` < (avg(`price`) + stddev_pop(`price`))
THEN `price`
ELSE NULL
END)
FROM `history`
WHERE `history`.`itemID` = 1574 \
AND `date` > date_sub(now(), interval 30 DAY)
我得到#1111 - 无效使用群组功能错误。
基本上,当price
落在标准偏差范围内时,我想要price
的平均值。如果没有,则不应包含在平均。
price
的例子:51,48,49,56,48,56,51,58,4,56,53
谢谢!
答案 0 :(得分:1)
请参阅http://sqlfiddle.com/#!2/4905c/2
select avg(price)
from prices
join (select avg(price) myavg, stddev_pop(price) mydev from prices) stats
where price between stats.myavg - stats.mydev and stats.myavg + stats.mydev