平均SQL表连接中的多个列

时间:2012-05-17 09:52:05

标签: sql postgresql

以下代码可供我创建如下表格:

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 个答案:

答案 0 :(得分: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

答案 1 :(得分: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的逐行平均值的平均值会得到相同的结果。