我可以得到子查询中返回的所有数字的意思吗?例如,我需要从另一个'x'小于当前行'x'的表中附加所有'y'的平均值。子查询上的汇总函数
喜欢的东西 -
select a.x,
mean(b.y where b.x<a.x from data2 b) as m_y
from data1 a
它不工作。获得结果的正确语法(或技巧)是什么?
我可以得到子查询中返回的所有数字的意思吗?例如,我需要从另一个'x'小于当前行'x'的表中附加所有'y'的平均值。子查询上的汇总函数
喜欢的东西 -
select a.x,
mean(b.y where b.x<a.x from data2 b) as m_y
from data1 a
它不工作。获得结果的正确语法(或技巧)是什么?
没关系,我知道了。
select a.x,
select(mean(b.y) where b.x<a.x from data2 b) as m_y
from data1 a
我的SQL与非使用生锈。
除非我遗漏了一些东西,否则您将使用标准的AVG聚合。
这可以表示为一个JOIN太
select
a.x,
AVG (b.y) AS m_z
from
data1 a
LEFT JOIN
data2 b ON b.x<a.x
group by
a.x
'LEFT JOIN'?不平等使它成为一个隐含的“CROSS JOIN”?不是那些总是离开,或者他们现在是否允许'RIGHT CROSS'? – 2011-05-29 09:02:56
@Bacon位:这将是一个部分交叉连接或我称之为三角形连接。无论哪种方式,结果都是行b.x
与JOIN相比,我发现这个语法令人困惑......另外,你的圆括号在错误的地方:整个SELECT应该在里面,不是? – gbn 2011-05-29 08:59:58