`

mysql函数实例-统计1周内未登陆的用户

 
阅读更多

流失用户统计(1周内未登陆的用户)。

 

CREATE FUNCTION `statics_user_unlogin_week`() RETURNS int(11)
    COMMENT '流失用户统计(一周内未登录的用户)'
BEGIN
	#Routine body goes here...
	DECLARE stopFlag INT DEFAULT 0 ;
	DECLARE _shop_id INT(11) DEFAULT 0;		#餐厅id
	DECLARE _device VARCHAR(50);			#手机设备号
	DECLARE _a_token CHAR(64) DEFAULT '-1';		#与苹果服务器会话
	DECLARE _s_token VARCHAR(64) DEFAULT NULL;	#与点菜网服务器会话
	DECLARE _lost_count INT(11) DEFAULT 0;
	DECLARE _start_day date;
	DECLARE _end_day date;
	
	#统计1周前下线的用户数(1周内未登陆)
	DECLARE cur1 CURSOR FOR SELECT id, device, a_token, s_token FROM visitor_user 
		WHERE DATEDIFF(NOW(), off_time) >= 8;	
	
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET stopFlag=1;
	
	OPEN cur1;
	
	FETCH cur1 INTO _shop_id, _device, _a_token, _s_token;
	WHILE  stopFlag = 0 do
		INSERT INTO report_user_unlogin_week_detail(id, shop_id, device, a_token, s_token) 
			values (UUID(), _shop_id, _device, _a_token, _s_token);

		FETCH cur1 INTO _shop_id, _device, _a_token, _s_token;
	END WHILE;
	
	#今天之前1周的第1天(例如: 2013-07-07)
	SET _start_day = DATE_SUB(DATE_FORMAT(now(),'%Y-%m-%d'), INTERVAL 8 DAY);
	#今天之前1周的最后1天(例如: 2013-07-13)
	SET _end_day = DATE_SUB(DATE_FORMAT(now(),'%Y-%m-%d'), INTERVAL 1 DAY);

	SELECT COUNT(device) into _lost_count FROM visitor_user WHERE DATEDIFF(NOW(), off_time) >= 8;

	#统计1周内的未登陆的用户数
	INSERT INTO report_user_unlogin_week(id, start_day, end_day, lost_count, type_client) 
		VALUES(UUID(), _start_day, _end_day, _lost_count, 0);
	
	RETURN 1;

END

 

0
2
分享到:
评论

相关推荐

    MySql 按时间段查询数据方法(实例说明)

    随着对更复杂时间范围查询需求的增加,可以结合更多的时间函数和操作符来满足更高级的查询需求,例如查询特定年份、季度、周等。随着数据库管理经验的累积,熟练掌握这些时间相关函数将大大提高开发效率和数据处理的...

    mysql常用函数实例总结【聚集函数、字符串、数值、时间日期处理等】

    以上只是MySQL函数的一小部分,实际上MySQL还提供了很多其他功能,如日期运算、数学运算、逻辑运算、类型转换等。熟练掌握这些函数能够极大地提高SQL查询的效率和灵活性。在实际开发中,根据需求选择合适的函数,...

    Mysql\学习笔记\mysql优化

    MySQL优化是数据库管理中至关重要的一个环节,目的是提高查询速度,减少资源消耗,进而提升整体系统性能。本文主要从数据库设计的三个范式和SQL优化技巧两个方面进行讲解。 首先,我们来了解一下数据库设计的三个...

    php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)

    然后,我们可以使用`FROM_UNIXTIME()`和`UNIX_TIMESTAMP()`这两个MySQL函数将时间戳转换为日期格式以便进行比较: ```php $start = date('Y-m-d 00:00:00'); $end = date('Y-m-d H:i:s'); // 在MySQL中查询 $sql =...

    PHP实例开发源码—Ourplus Counter 网站流量统计分析系统个人版.zip

    【PHP实例开发源码—Ourplus Counter 网站流量统计分析系统个人版.zip】是一个包含PHP编程语言实现的网站流量统计分析系统的源代码。这个系统可以帮助网站管理员追踪和理解他们的网站用户行为,提供关键的访问量数据...

    SQL21天自学通

    - **总结**:通过实例讲解如何使用SELECT语句进行基础的数据查询。 #### 第三天:表达式、条件语句与运算 - **表达式**:SQL中的表达式可以是常量、变量、函数、操作符等的组合。 - **条件语句**:如IF...THEN......

    MFC-ODBC-.rar_mfc排序

    4. **用户界面**:MFC提供了一系列的对话框和控件,可以快速构建出友好的用户界面,如添加成绩、查看成绩、统计分析等功能的界面,使得非技术用户也能轻松操作。 5. **数据操作**:通过MFC的成员函数,可以实现对...

    MySQL中的事件调度基础学习教程

    MySQL中的事件调度(Event Scheduler)是数据库管理系统中一个强大的特性,允许用户在预设的时间点执行特定的任务,类似于Linux系统的crontab。通过Event Scheduler,你可以避免依赖外部的定时任务工具,简化多实例...

    python入门到高级全栈工程师培训 第3期 附课件代码

    本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和数据链路层 08 网络层和arp协议 09 传输层和应用...

    图书管理系统_ww_python_图书管理_图书管理系统_

    7. **统计与报表**:生成各类统计数据,如最常借阅的书籍、逾期未还的用户等。 在Python中,这些功能可以通过面向对象编程(OOP)实现,创建类来代表图书、用户和借阅记录,以及一个主类来管理这些对象并协调界面...

    简洁的php日历 v1.0.rar

    1. **项目简介** “简洁的PHP日历v1.0”是一个轻量级的PHP日历组件,主要包含两个核心文件:`calendar.class.php`(日历类)和`index.php`(入口文件)。项目设计简洁,易于理解和使用,尤其适合对PHP有一定基础的...

    basic-SQL.zip_40

    2. 分组与聚合函数:GROUP BY语句用于按指定列进行分组,而聚合函数如COUNT、SUM、AVG、MAX和MIN则用于计算每个组的统计信息。 3. 子查询:嵌套在其他查询中的查询称为子查询,可以用于比较、过滤和计算。 4. 视图...

    C设计 超市管理系统原码

    这部分可能包含销售订单的创建、修改、删除功能,以及统计销售报告,比如日、周、月销售报表,畅销商品排名等。 4. **客户管理**:客户信息的管理可能涉及客户注册、登录、购买历史记录、积分系统等功能。这有助于...

    21天精通SQL

    4. **聚合函数与子查询**:学习使用`SUM`, `COUNT`, `AVG`, `MAX`, `MIN`等聚合函数进行统计计算,并理解子查询的概念,它可以在主查询中嵌套其他查询以满足更复杂的逻辑。 5. **视图与索引**:掌握创建和使用视图...

Global site tag (gtag.js) - Google Analytics