统计最近七天的数据访问量 mysql

最近做了一个日志功能,当用户访问接口后,会记录哪个接口,返回结果等信息,

记录请求地址,ip,请求方法,参数和请求时间。没有关联到个人。数据表如下:


现在想做一个统计最近七天的访问接口数量,之前想的有些复杂。

首先获取今天的日期,根据日期查询数量,再查询出近七天的数量。后来发现sql可以直接解决,

CURDATE() 函数返回当前的日期。

curdate()直接返回当天

查询最近七天的访问量,sql如下


select a.click_date as 日期,ifnull(b.count,0) as 数量
			from (
					#查询当天
					SELECT curdate() as click_date
union all
					#前一天
	SELECT date_sub(curdate(), interval 1 day) as click_date
	union all
	SELECT date_sub(curdate(), interval 2 day) as click_date
	union all
	SELECT date_sub(curdate(), interval 3 day) as click_date
	union all
	SELECT date_sub(curdate(), interval 4 day) as click_date
	union all
	SELECT date_sub(curdate(), interval 5 day) as click_date
		union all
	SELECT date_sub(curdate(), interval 6 day) as click_date
	) a left join (
				select date(sendtime) as datetime, count(*) as count
				from t_logs
				group by date(sendtime)
	) b on a.click_date = b.datetime;

查询结果:

后台我使用的是springboot+ssm框架,

因为返回多条数据,就返回list。

mybatis sql

我发现返回结果却是为空

解决:当resulttype改为hashmap时,返回为空的问题完美解决。

截图返回的部分数据

至于为什么是hashmap,我也不是特别清楚。大概是这样,

返回值是HashMap类型,可以理解为动态的创建了一个HashMap集合,以键值对的形式保存从数据库里的返回值,map.put("ID",xxx);    map.put("NAME",xxx);    map.put("COUNT",xxx);

特此记录,供以后参考

 

 -----   笔者水平有限,如有不严谨的地方,请指教必改。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的蚂蚁【你若】

如果帮助到了您,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值