如何计算每个月的记录数?

问题描述 投票:0回答:2

我想计算一年中每个月的记录数。

select count(t2.user) as total, concat(YEAR(t2.docdate), '-', MONTH(t2.docdate)) as date

from tbl1 t1
LEFT JOIN tbl2 t2 ON(...)

WHERE

AND t2.docdate BETWEEN '2018-10-01' AND '2019-03-25'

GROUP BY MONTH(t2.docdate)

total docdate

但我的结果不正确。

18    2018-12-12
93    2018-12-12
51    2018-11-18
12    2018-11-07
13    2018-11-03
mysql
2个回答
3
投票

您需要按照select语句中包含的相同字段进行分组:

select count(t2.user) as total, concat(YEAR(t2.docdate), '-', MONTH(t2.docdate)) as date    
from tbl1 t1
LEFT JOIN tbl2 t2 ON(...)

WHERE

AND t2.docdate BETWEEN '2018-10-01' AND '2019-03-25'

GROUP BY concat(YEAR(t2.docdate), '-', MONTH(t2.docdate))

1
投票

通过使用dateformat尝试如下

  select count(t2.user) as total, 
  DATE_FORMAT(t2.docdate,'%Y-%m') as date    
 from  tbl2  t2
 LEFT JOIN tbl1 t1 ON(...)    
 WHERE    
 t2.docdate BETWEEN '2018-10-01' AND '2019-03-25'    
 GROUP BY DATE_FORMAT(t2.docdate,'%Y-%m')

在我看来你需要使用table2作为左表而不是table1

© www.soinside.com 2019 - 2024. All rights reserved.