mysql - 对子查询结果求和

标签 mysql sql

表示例:

| date_time           | quantity
-------------------------
| 2017-08-12 09:11:51 | 1
| 2017-08-12 10:12:51 | 1
| 2017-08-12 12:45:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 11:12:51 | 1
| 2017-08-13 12:45:51 | 1
| 2017-08-13 13:57:51 | 1
| 2017-08-14 14:23:51 | 1
| 2017-08-14 16:34:51 | 1
| 2017-08-15 16:21:51 | 1
| 2017-08-16 14:31:51 | 1

我可以通过以下查询获得结果:

SELECT DATE(date_time) as date_time
    ,SUM(quantity) as quantity
FROM report
WHERE date_time BETWEEN '' AND  ''
GROUP BY DATE(date_time)
HAVING SUM(quantity) < 3 

结果:

| date_time  | quantity
 -------------
| 2017-08-14 | 2
| 2017-08-15 | 1
| 2017-08-16 | 1

我想之后对数量进行求和。例如:

 quantity
---------
| 4

为了实现这一目标,我知道我需要使用结果作为子查询来求和。我尝试了这个,但它是错误的:

SELECT SUM(topla) FROM (
  ( SELECT DATE(date_time) as date_time
        ,SUM(quantity) as quantity
    FROM report
    WHERE date_time BETWEEN '' AND  ''
    GROUP BY DATE(date_time)
    HAVING SUM(quantity) < 3 
  ) AS topla
)

如何对数量求和?

最佳答案

首先,您必须按列名称对数量求和。 (在示例中我将其命名为 sub_quantity)

其次,您不需要选择日期。

所以你的查询可能是

SELECT SUM(sub_quantity) AS quantity
FROM
  ( SELECT SUM(quantity) AS sub_quantity
   FROM report
   WHERE date_time BETWEEN '' AND ''
   GROUP BY DATE(date_time)
   HAVING SUM(quantity) < 3) a

关于mysql - 对子查询结果求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48182609/

相关文章:

Mysql 本地主机!= 127.0.0.1?

c# - 尝试在没有 Entity Framework 的情况下使用表单发布——我放弃了,但会保持打开状态,以防它帮助某人......在某个地方

java - RuntimeException : org. hibernate.exception.SQLGrammarException:无法执行查询

sql - Redshift - 过去一小时值的窗口函数

sql - 在 SQL Server 中,将时间和日期拆分为两个单独的日期列是最佳做法吗?

mysql - 向表中插入行并添加序列

phpMyAdmin/MySQL 导出用户/权限供以后导入

php - 设置mysql "search"页面

MySQL:使用 Group By 更新字段

mysql - MySQL非法混合排序规则