【问题标题】:SQL Compact Edition LEFT OUTER JOIN AverageSQL Compact Edition LEFT OUTER JOIN 平均
【发布时间】:2013-01-23 23:39:46
【问题描述】:

我有一张包含产品的表格和一张包含评分的表格。我有以下查询;

SELECT products.name, ratings.rating 
FROM   products 
       LEFT OUTER JOIN ratings 
       ON products.id = ratings.product_id;

分别返回给我一个很好的行列表,其中包含产品名称和每个评级。

我试图实现它返回一行,显示产品名称及其平均评分。似乎无法找出如何。

提前致谢。

【问题讨论】:

    标签: sql join sql-server-ce left-join outer-join


    【解决方案1】:

    您想查看the GROUP BY statement。示例:

    SELECT products.name AS Product_Name, 
           AVG(ratings.rating) AS Average_Rating
    FROM   products 
           LEFT OUTER JOIN ratings 
           ON products.id = ratings.product_id
    GROUP BY products.name
    ORDER BY products.name;
    

    在使用 GROUP BY 语句时,您可能希望根据一个或多个聚合函数的结果过滤结果集。你使用the HAVING statement 这样做:

    SELECT products.name AS Product_Name, 
           AVG(ratings.rating) AS Average_Rating
    FROM   products 
           LEFT OUTER JOIN ratings 
           ON products.id = ratings.product_id
    GROUP BY products.name
    HAVING AVG(ratings.rating) >= 3
    ORDER BY products.name;
    

    【讨论】:

    • CE是否使用非标准函数average而不是avg?
    • 太棒了,非常感谢。我真的不需要 HAVING,但还是感谢您的解释!
    猜你喜欢
    • 2014-08-10
    • 2010-09-29
    • 2015-01-10
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    相关资源
    最近更新 更多