具有不同列值的行的平均值

时间:2017-03-12 21:39:22

标签: sql

2桌

  • 产品(制造商,型号)
  • PC(型号,......,价格)

modelProductPC

之间的外键

我需要选择Product中具有相同maker并平均其price的所有行。

因此,请使用以下表格:

Product       PC
-------       -------
A    1        1    60
A    2        2    80
B    3        3    110
B    4        4    140

我应该得到:

maker      avg(price)
---------------------
A          70
B          125

我已经尝试过这个,但不知道如何组合行并平均那些结合起来的行。这会显示所有PC的整个maker表格的平均值。

select 
    Product.maker, Product.model, avg(PC.price) 
from 
    Product, PC 
group by 
    Product.maker, Product.model 
order by 
    maker asc;

1 个答案:

答案 0 :(得分:2)

不要再使用旧的遗留隐式连接语法。使用显式连接

select Product.maker, avg(PC.price) 
from Product
left join PC on PC.model = Product.model
group by Product.maker
order by Product.maker asc