【问题标题】:HAVING SUM() Issue有 SUM() 问题
【发布时间】:2014-03-10 22:22:45
【问题描述】:

我想使用 HAVING SUM () 变量按日期添加总销售额,但它没有按预期工作。

    SELECT
       sum(SalesA+SalesB) as Sales,
       sum(tax) as tax,
       count(distinct SalesID) as NumOfSales,
       Date
    FROM
       SalesTable
    WHERE
       Date >= '2014-03-01'
    GROUP BY
       Date, SalesA
    HAVING
       sum(SalesA+SalesB) >= 7000
    ORDER BY
       Date 

结果是;

   |Sales| tax | NumOfSales | Date |
    10224| 345 |     1      |2014-03-06| 
     9224| 245 |     1      |2014-03-06|
     7224| 145 |     1      |2014-03-06|

如果我删除 GROUP BY 子句中的 SalesA,它似乎会忽略我的 HAVING sum 子句并添加所有总数。

我希望像这样按日期汇总所有结果。

    |Sales| tax | NumOfSales | Date |
     26672| 735 |     3      |2014-03-06

感谢您提供的任何帮助。

【问题讨论】:

标签: sql


【解决方案1】:

您可以尝试如下重写您的 SQL 语句。

SELECT
   sum(SalesA+SalesB) as Sales,
   sum(tax) as tax,
   count(distinct SalesID) as NumOfSales,
   Date
FROM
   SalesTable
WHERE
   Date >= '2014-03-01' AND SalesA+SalesB >= 10000
GROUP BY
   Date
ORDER BY
   Date

【讨论】:

    【解决方案2】:

    是否要删除 salesa + sales b = 7000 的行求和?

    SELECT
       sum(SalesA+SalesB) as Sales,
       sum(tax) as tax,
       count(distinct SalesID) as NumOfSales,
       Date
    FROM
       SalesTable
    WHERE
       Date >= '2014-03-01'
       and
       SalesA+SalesB >= 7000
    GROUP BY
       Date
    ORDER BY
       Date 
    

    【讨论】:

    • 似乎太容易了 :) 它解决了我遇到的问题。
    • 谢谢大家的帮助
    • @automatic 使用 where 和 count(聚合函数) 是否正确?如果是,请解释
    • 我们不应该使用有吗?
    • 聚合和拥有都很好,但在这种情况下,需要从聚合中删除数据是为了执行聚合,而不是从聚合结果中删除特定集合
    【解决方案3】:

    试试HAVING Sales >= 7000

    【讨论】:

    • 它是:),我在这里输入时打错了
    • 编辑您的问题,然后反映您的真实查询
    • 另外,如果你想按Date分组,你为什么不GROUP BY Date,你为什么需要SalesA列在组中(或者这也是你需要的一部分)。您应该展示一个输入表的示例。
    • 如果我删除 GROUP BY "SalesA" 它会添加所有数据,返回所有高于 7k 及以下的记录。
    • 好吧,如果你只想对那些 >= 7000 求和,那么你可以在 WHERE 中进行,而不是在 HAVING 中。 HAVING 仅在聚合函数之后应用。试试WHERE Date>=.... AND SalesA+SalesB >= 7000
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2012-08-25
    相关资源
    最近更新 更多