2012-04-30 61 views
0

我的数据库看起来像:获得的产品的平均价格在一个类别

Table - Products 
products_id 
products_price 

Table - Products_to_Categories 
categories_id 
products_id 

Table - Products_Descriptions 
products_name 

Table - Categories_Descriptions 
categories_name 

还有很多其他的列,但这些都是我需要的人。

我想选择上述所有列,但我也希望平均产品价格落得每个类别

我知道它可能会包括AVG()函数,但我试过一堆不同的疑问(我是一个学习者),如果我能弄清楚一些有用的东西,我就会喋喋不休。只用一个查询就可以做到这一点吗?目前我无法理解它。

任何帮助将受到最感激的接收。 :(

回答

0

这里有一个查询,将做到这一点对一个类别,然后您可以更改类别ID为每个类别。

SELECT AVG(product_price) FROM Products WHERE products_id IN (SELECT products_id FROM Products_to_Categories WHERE categories_id = x) 
1

通过CATEGORY_NAME和/或CATEGORY_ID加入的表,然后一组。以上由Jrod强调的链接是很好的参考:

SELECT AVG(p.product_price), c.category_name 
FROM Products p 
    INNER JOIN Products_to_Categories pc ON p.product_id = pc.product_id 
    INNER JOIN Categories c on pc.category_id = c.category_id 
GROUP BY c.category_name 
相关问题