mysql - 统计超过日期的订单数量

标签 mysql sql

我有一个这样的表:orders(id, created_ts, status) 我想生成一个 MySQL 查询,它显示带有 created_ts 的未结订单数。 created_ts 是 MySQL 时间戳

示例数据:

id  created_ts status
--- ---------- -------
1   11-1-2017  Open
2   11-1-2017  Open
3   12-1-2017  Open
4   13-1-2017  Open
5   13-1-2017  Closed
6   14-1-2017  Closed

输出:

created_ts  count  
--------    ------  
11-1-2017   2  
12-1-2017   3  
13-1-2017   4  
14-1-2017   4  

其中 count 是该日期未结订单的数量。
计算如下。
某个日期的订单数 = 所有状态为“打开”且 created_ts <= 该行的 created_ts 的订单。

我不知道如何解决这个问题。 谁能帮帮我。

最佳答案

您可以使用相关查询来获取不同日期的未结订单的运行总数

select t1.created_ts,
  (select count(*)
   from demo 
   where created_ts <=t1.created_ts 
   and status = 'Open') date_wise_sum
from (
  select distinct created_ts
  from demo 
) t1

Demo

关于mysql - 统计超过日期的订单数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52268680/

相关文章:

php - 如何将 HTML 表单中的数字添加到数据库中已有的数字?

mysql - 向已经 HASH 分区的表添加额外的 HASH 分区

mysql - 分组依据,其中 null 属于所有组

sql - 在 SQL Server 2008 中合并两个表

mysql - 在sql中设置总和的小数位

java - 如何将此 SQL 查询转换为 Hibernate 的 HQL?

php - 按日期获取不同表中记录之间的持续时间

php - 比较不同表中两列的 SUM()?

mysql - 使用外部信息的 WHERE 子句中的 SELECT

sql - Oracle SQL Group By,使用最新日期的值