我有一个数据库,我用一个查询来产生一个中间表是这样的:嵌套查询
id a b
xx 1 2
yy 7 11
,我想计算B的标准差谁拥有用户< AVG(一)
我计算AVG(一)这种方式工作得很好:
select avg(select a from (query to produce intermediate table)) from table;
但查询:
select stddev_pop(b)
from (query to produce intermediate table)
where a < (select avg(select a
from (query to produce intermediate table))
from table);
返回给我一个错误,更准确地说,我被告知来自avg的“a”(select a from ...)无法识别。这让我非常困惑,因为它在前面的查询中起作用。
如果有人能帮忙,我将不胜感激。
编辑:
我存储在我的查询的结果生成中间表到一个临时表,但仍然会碰到同样的问题。 非工作查询变为:
select stddev_pop(b) from temp where a < (select avg(a) from temp);
,而这个工程:
select avg(a) from temp;
@Bob Duell感谢OU的编辑!这很方便。 – S4M