【问题标题】:How to get SUM of one column after ORDER BY and LIMIT?如何在 ORDER BY 和 LIMIT 之后获得一列的总和?
【发布时间】:2021-09-24 16:23:54
【问题描述】:

sql:

    SELECT instock.rating
    FROM instock
    JOIN products
    ON instock.code_id=products.code
    WHERE products.brand="Adidas"
    ORDER BY -instock.rating
    LIMIT 5;

例如: 返回: 5 5 6 6 7

在 Where、Order By 和 Limit 之后我需要 SUM(i.rating),返回 5+ 5+ 6+ 6+ 7。

在 ORDER BY 响应之后包含大约 200 行。 我的尝试示例: 1:

    SELECT SUM(instock.rating) 
    FROM instock
    JOIN products
    ON instock.code_id=products.code
    WHERE products.brand="Adidas"
    ORDER BY -instock.rating
    LIMIT 5; 

返回,值:3000,所以,SUM所有查询。 2:

    SELECT SUM(DISTINCT instock.rating)
    FROM instock
    JOIN products
    ON instock.code_id=products.code
    WHERE products.brand="Adidas"
    ORDER BY -instock.rating
    LIMIT 5;

返回:5+ 6+ 7== 19,所以,SUM 单 i。

如何从第一个 sql 示例中获取值:5+ 5+ 6+ 6+ 7 = 29?

【问题讨论】:

  • 1) 标记您的数据库 2) 提供示例数据和所需的输出

标签: sql select sum sql-order-by


【解决方案1】:
SELECT SUM(rate)
FROM (SELECT i.rating as rate
    FROM instock_nagornaya AS i 
    JOIN products AS p
    ON code_id=code
    WHERE p.brand="Adidas"
    ORDER BY -i.rating
    LIMIT 5);

可能会更快解决?

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 2014-01-09
    • 1970-01-01
    • 2017-05-12
    • 2014-09-10
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多