2012-05-17 69 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),分享需要的结果。 –