需求找出某个时间段的每天总数统计

Yuzwe 2018-05-02 02:59:52
原数据
表 tb_a
id time num
1 2018-02-01 1
2 2018-02-01 1
3 2018-02-02 1
..........
4 2018-02-27 1

输入2018-02

得到的数据

time count
2018-02-01 2
2018-02-02 1
........
2018-02-27 1
2018-02-28 0
...全文
613 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingqing6364 2018-05-03
  • 打赏
  • 举报
回复
1.建立一个表,就一个int型字段,存入31条记录,1到31

-- 建表
CREATE TABLE `t2` (
  `date` int(11) NOT NULL,
  PRIMARY KEY (`date`)
)
-- 插入记录
INSERT INTO `t2` (`date`) VALUES ('1'), ('2'), ('3'), ('4'), ('5'), ('6'), ('7'), ('8'), ('9'), ('10'), ('11'), ('12'), ('13'), ('14'), ('15'), ('16'), ('17'), ('18'), ('19'), ('20'), ('21'), ('22'), ('23'), ('24'), ('25'), ('26'), ('27'), ('28'), ('29'), ('30'), ('31')
2.借助表t2,把整个月份的日期拉取齐全

SELECT
	DATE_ADD(CONCAT('2018-02', '-01'),INTERVAL t2.date - 1 DAY) date,
	IFNULL(Sum(t1.num),0) num
FROM
	t2
	LEFT JOIN t1 ON t1.time LIKE CONCAT('2018-02', '%') AND DAY(t1.time) = t2.date
WHERE
	DATE_ADD(CONCAT('2018-02', '-01'),INTERVAL t2.date - 1 DAY) LIKE CONCAT('2018-02', '%')
GROUP BY
	t2.date
Yuzwe 2018-05-03
  • 打赏
  • 举报
回复
引用 4 楼 mingqing6364 的回复:
1.建立一个表,就一个int型字段,存入31条记录,1到31

-- 建表
CREATE TABLE `t2` (
  `date` int(11) NOT NULL,
  PRIMARY KEY (`date`)
)
-- 插入记录
INSERT INTO `t2` (`date`) VALUES ('1'), ('2'), ('3'), ('4'), ('5'), ('6'), ('7'), ('8'), ('9'), ('10'), ('11'), ('12'), ('13'), ('14'), ('15'), ('16'), ('17'), ('18'), ('19'), ('20'), ('21'), ('22'), ('23'), ('24'), ('25'), ('26'), ('27'), ('28'), ('29'), ('30'), ('31')
2.借助表t2,把整个月份的日期拉取齐全

SELECT
	DATE_ADD(CONCAT('2018-02', '-01'),INTERVAL t2.date - 1 DAY) date,
	IFNULL(Sum(t1.num),0) num
FROM
	t2
	LEFT JOIN t1 ON t1.time LIKE CONCAT('2018-02', '%') AND DAY(t1.time) = t2.date
WHERE
	DATE_ADD(CONCAT('2018-02', '-01'),INTERVAL t2.date - 1 DAY) LIKE CONCAT('2018-02', '%')
GROUP BY
	t2.date
谢谢大佬
Yuzwe 2018-05-02
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
-- 这个意思 ?
select tb_a, count(*)
from t
group by tb_a
取这种数据
Yuzwe 2018-05-02
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
-- 这个意思 ? select tb_a, count(*) from t group by tb_a
不是,是输入框输入2018-02,按照这2018-02统计2018年2月份总共28天、每一天的总数求和而且月份要自己判断多少天数
卖水果的net 2018-05-02
  • 打赏
  • 举报
回复
-- 这个意思 ? select tb_a, count(*) from t group by tb_a

56,679

社区成员

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

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