关于分组查询过去6个月的统计数

baobao28 2018-04-27 04:05:24
table1
id name type createtime sendto
1 01 01 2018-04-10 16:48:55 210100
2 01 01 2018-04-11 09:38:35 210100
3 01 01 2018-04-11 09:43:11 210100
4 01 01 2018-04-11 09:44:16 210100
5 01 01 2018-04-11 09:44:17 210100
6 01 01 2018-04-11 09:44:17 210100
7 01 01 2018-04-11 09:44:18 210100
8 01 01 2018-04-11 09:44:18 210100
9 01 02 2018-04-11 09:44:44 210100
10 01 02 2018-04-11 09:44:45 210100
11 01 02 2018-04-11 09:44:45 210100
12 01 02 2018-04-11 09:44:58 210200
17 01 03 2018-04-11 09:45:03 210200
18 01 03 2018-04-11 09:45:03 210200

table2
id code name
1 01 A
2 02 B
3 03 C

现在想根据这两个表统计过去6个月每个类型对应的个数,如果对应的类型和月份数据不存在,则统计查询结果为0,不能为空。其中这两个表是以table1的type和table2的code作为关联的
希望的结果如下
A 2017-11 0
B 2017-11 0
C 2017-11 0
A 2017-12 0
B 2017-12 0
C 2017-12 0
A 2018-01 13
B 2018-01 20
C 2018-01 30
A 2018-02 0
B 2018-02 0
C 2018-02 0
A 2018-03 13
B 2018-03 0
C 2018-03 0
A 2018-04 13
B 2018-04 8
C 2018-04 5
...全文
573 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baobao28 2018-04-28
  • 打赏
  • 举报
回复
问题解决了,生成一个年月的临时集合join类型表,合并出来一个结果集合,去关联数据结果集合
crynono 2018-04-27
  • 打赏
  • 举报
回复
table1里面加一列 ym,内容是年月,根据createtime 转换(用YEAR 和MONTH函数)而来。 然后 select type, ym, count(0) from table1 group by type,ym 这个子查询再来和table2 连接 on table1.type = table2.code。 这样已经能得到每个类型不同月份的个数了。 当然,如果非要统计过去6个月,如果对应的类型和月份数据不存在,则统计查询结果为0,不能为空,需要再加一点东西

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧