我可以得到子查詢中返回的所有數字的意思嗎?例如,我需要從另一個'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