mysql - 连续日期的计数总和

标签 mysql date count sum

我需要获取每个月的商品总数。

到目前为止,使用以下代码:

Select Count(mpay_collector_company.id) As `Number of Collector Companies`,
  Month(mpay_collector_company.created_at) As Month,
  Year(mpay_collector_company.created_at) As Year
From mpay_collector_company
Group By Month(mpay_collector_company.created_at),
  Year(mpay_collector_company.created_at)

我有以下回应:

#|Year|Month
------------
5|2014|11
3|2014|12
3|2015|1
7|2015|2
6|2015|3
2|2015|4
5|2015|6
1|2015|7

我想要的不是每个月的数字,而是每个月开始时的总和,就像这样:

Sum|Year|Month
--------------
  5|2014|11
  8|2014|12
 11|2015|1
 18|2015|2
 24|2015|3
 26|2015|4
 31|2015|6
 32|2015|7

有什么想法吗?

编辑:这个请求将作为一个 View 来实现,所以子请求几乎是不可能的:x

最佳答案

像这样的东西可以工作:

Select Count(distinct previous_mpay_collector_company.id)+ Count(distinct mpay_collector_company.id) As `Number of Collector Companies`,
       Month(mpay_collector_company.created_at) As Month,
       Year(mpay_collector_company.created_at) As Year
From mpay_collector_company
  Left Join mpay_collector_company previous_mpay_collector_company
    On   Year(mpay_collector_company.created_at) > Year(previous_mpay_collector_company.created_at)
 OR (Month(mpay_collector_company.created_at) > Month(previous_mpay_collector_company.created_at)
         And  Year(mpay_collector_company.created_at) >= Year(previous_mpay_collector_company.created_at))
  And previous_mpay_collector_company.id <> mpay_collector_company.id
Group By Month(mpay_collector_company.created_at),
Year(mpay_collector_company.created_at);

诀窍是 self 加入所有之前的月份并从加入的表中计数。

关于mysql - 连续日期的计数总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479479/

相关文章:

php - 使用 foreach 循环发布动态生成的文本框

java - 获取java中数组列表中分组属性的大小

mysql - 使用带有计数的 MYSQL Distinct?

java - 如何将运行时已知的值 ('how many' 传递给 SQL 查询

python - 超过 5000 万行数据 - CSV 或 MySQL

mysql - 如何获得外键的ON DELETE和ON UPDATE操作值?

java - Hibernate Date Criteria 失败,但 HQL 有效

iphone - 如何根据日期对sqlite数据库进行排序?

jQuery UI Datepicker 将备用字段填充并格式化为 MySQL 日期

mysql - 使用 COUNT 过滤标签