2012-05-17 100 views
0

下面的代碼爲我工作,以創建一個表如下:平均SQL表內多列加入

SELECT reviews.style_id, AVG("col1"), AVG("col2") 
    FROM reviews, audios 
WHERE reviews.consumer_id = audios.consumer_id 
GROUP BY style_id 

enter image description here

所以我的問題是,我想平均col1col2 ,不用擔心NULL值,因爲它們不會存在於我的表中。但是,我確實需要維護連接的邏輯。謝謝!

+2

無關的注意事項:應該在WHERE子句中使用明確的'JOIN'語法而不是隱式的語法。 –

回答

1

這是你想要的嗎?

SELECT reviews.style_id, 
     (AVG("col1") + AVG("col2"))/2.0 
FROM reviews, audios 
WHERE reviews.consumer_id = audios.consumer_id 
GROUP BY style_id 
+0

我想假設col1和col2的平均值是基於相同的行數,它們是這樣的。謝謝 – Abram

0

作爲替代接受的答案,並在評論基於OP的澄清:

SELECT reviews.style_id, 
     Avg((col1+col2)*0.5) 
FROM reviews 
     INNER JOIN audios 
     ON reviews.consumer_id = audios.consumer_id 
GROUP BY reviews.style_id 

一行接一行col1col2平均可以得到同樣的結果,這種平均。

+0

我得到了與該查詢完全相同的輸出表。我希望Col1和Col2在一起平均!也許不可能? – Abram

+0

你想要什麼Avg(col1 + col2),分享需要的結果。 –