0

我有一张像这样的桌子:

id    B       C
a     0.5     10.1
b     0.6     2.3
c     0.9     2.1
d     15.2    8.2

我想计算一个数量,例如:“B低于平均值的C的标准偏差”。

我不知道该怎么做。

select ssdev_pop(C) from (select B, C from table where B < avg(B) );

不起作用,我不知道如何一次性访问 avg(B) (我知道我可以计算它并将其插入第二个查询,但我想避免这种情况)。

有人可以帮忙吗?

4

1 回答 1

2

试试这个,

SELECT stddev_pop(C) 
FROM
(
   SELECT B, C
   FROM   table1
   WHERE  B < (SELECT AVG(B) FROM table1 )
) s

演示:http ://www.sqlfiddle.com/#!2/9d570/8

于 2012-11-26T08:54:49.200 回答