2011-05-29 54 views
0

我可以得到子查詢中返回的所有數字的意思嗎?例如,我需要從另一個'x'小於當前行'x'的表中附加所有'y'的平均值。子查詢上的彙總函數

喜歡的東西 -

select a.x, 
mean(b.y where b.x<a.x from data2 b) as m_y 
from data1 a 

它不工作。獲得結果的正確語法(或技巧)是什麼?

回答

0

沒關係,我知道了。

select a.x, 
select(mean(b.y) where b.x<a.x from data2 b) as m_y 
from data1 a 

我的SQL與非使用生鏽。

+0

與JOIN相比,我發現這個語法令人困惑......另外,你的圓括號在錯誤的地方:整個SELECT應該在裏面,不是? – gbn 2011-05-29 08:59:58

1

除非我遺漏了一些東西,否則您將使用標準的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 
+0

'LEFT JOIN'?不平等使它成爲一個隱含的「CROSS JOIN」?不是那些總是離開,或者他們現在是否允許'RIGHT CROSS'? – 2011-05-29 09:02:56

+0

@Bacon位:這將是一個部分交叉連接或我稱之爲三角形連接。無論哪種方式,結果都是行b.x gbn 2011-05-29 09:05:05