计算用户距上次访问的天数,根据imei号区分不同的用户,如果时间段内只有一次访问则为0。
初始化数据
CREATE TABLE `pd` (
`imei` varchar(32) NOT NULL DEFAULT '',
`dat` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of pd
-- ----------------------------
INSERT INTO `pd` VALUES ('1', '2013-07-25 00:00:01');
INSERT INTO `pd` VALUES ('1', '2013-07-26 00:00:02');
INSERT INTO `pd` VALUES ('2', '2013-07-23 00:00:04');
INSERT INTO `pd` VALUES ('2', '2013-07-26 00:00:03');
INSERT INTO `pd` VALUES ('3', '2013-07-26 00:00:01');
脚本
select * from (
select imei user_id, max(max_dd) , max(max_dd_2), to_days( max(max_dd)) - to_days(max(max_dd_2)) days from (
select imei, max_dd, max_dd_2 from (
select tmp.imei, tmp.dates,
if(@imei=tmp.imei, @rank:=@rank+1,@rank:=1) as rank,
if(@rank = 1, @max_d := tmp.dates, @max_d := null) as max_dd,
if(@rank = 2, @max_d_2 := tmp.dates, @max_d_2 := null) as max_dd_2,
@imei:=tmp.imei
from (select imei, dates from pb order by imei asc ,dates desc ) tmp ,
(select @rownum :=0 , @imei := null ,@rank:=0, @max_d :=null, @max_d_2 := null) a
) result
) t
group by imei
having count(*) > 1
) x where x.days >= 1 and EXISTS (select 'x' from pb where dates > '2013-07-26 00:00:00')
如果表数据量大,千万不要用union all等操作
分享到:
相关推荐
3. PHP与MySQL连接:使用mysqli或PDO扩展来建立数据库连接,执行SQL语句,处理结果集。 4. PHP操作MySQL:插入和更新数据、查询记录、删除数据、事务处理以及错误处理。 5. PHP动态网页:利用PHP从MySQL数据库获取...
#适用于实时查询mysql占用CPU高的语句,循环监控mysql进程情况,当CPU大于一定的前执行中的SQL情况. #执行前,修改ENV认证部分 #编写:Chaoren #2022年3月4日18:38:53 # #对于执行时间非常短的SQL可能监控到的语句...
用户变量可以在 MySQL 客户端中使用,例如: ```sql mysql> SELECT 'Hello World' INTO @x ; mysql> SELECT @x ; ``` 用户变量也可以在存储过程中使用,例如: ```sql mysql> CREATE PROCEDURE GreetWorld( ) ...
5. **SQL语句的批处理执行**:在批处理文件中,你可以通过命令行工具将SQL语句作为参数传递,或者将SQL语句写入到批处理文件中,通过工具读取并执行。例如,使用SQLCMD,批处理文件可能如下所示: ```batch @echo ...
在存储过程中使用动态SQL语句能够增加代码的灵活性和可维护性。 以下是一个实例,展示了如何在MySQL存储过程中实现执行动态SQL语句的方法: 首先,我们创建一个名为`set_col_value`的存储过程,它接受四个输入参数...
在SQL中,不同数据库系统如MySQL、SQL Server、Oracle等对游标的实现略有差异,但基本原理是相同的。 1. **创建游标**: 在SQL中,创建游标通常包括定义查询语句和声明游标两步。例如,在SQL Server中,你可以这样...
5. 格式化字符串:在执行SQL语句时,需要将变量格式化为字符串,以便在SQL语句中使用sprintf函数可以实现这个功能,该函数可以将变量按照给定的格式,赋值给字符串。 6. 关闭数据库连接:在操作完数据库后,需要...
语句体中可以包含变量的声明、控制语句、SQL 查询语句等。由于存储过程内部语句要以分号结束,所以在定义存储过程前应将语句结束标志“;”更改为其他字符,并且该字符在存储过程中出现的几率也应该较低,可以用...
`:显示创建`maclu`数据库时所用的SQL语句。 - **修改数据库** - `ALTER DATABASE t2 CHARACTER SET=utf8;`:将`t2`数据库的字符集改为UTF-8。 - **删除数据库** - `DROP DATABASE t2;`:删除`t2`数据库。 - `...
总的来说,"Mysql的ODBC操作实例 v2"是一个关于如何在C++中使用ODBC API与MySQL数据库交互的实例,适用于那些希望在VS2012环境下进行数据库操作的开发者。通过对"ClientInfo"等数据库表的操作,我们可以学习如何构建...
在本文中,我们将深入探讨如何使用Visual C++ 6(简称VC6)开发应用程序,以操作MySQL数据库。这个资源包提供了必要的源代码和SQL文件,确保你可以进行测试并验证其功能。 首先,让我们理解VC6与MySQL的集成。...
在PHP与MySQL的结合应用中,了解如何使用PHP连接MySQL数据库,执行SQL查询,并处理查询结果。这通常涉及到使用PHP的MySQLi或PDO扩展。学会使用预处理语句和事务处理,能有效防止SQL注入攻击,确保数据安全。 本书...
` 可以显示当前MySQL实例中存在的所有数据库。 4. **选择数据库**: 使用 `use 数据库名;` 可切换到指定的数据库。 5. **创建数据库**: 创建数据库的命令是 `create database 数据库名称;`。 6. **创建带编码...
10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. BINARY操作符 10.3.11. 校对确定较为复杂的一些特殊情况 10.3.12. 校对必须适合字符集 10.3.13. 校对效果的示例 10.4. 字符集支持影响到的操作 ...
- **SPRING集成和DEMO**: 如何在Spring项目中使用BeetSql。 - **SPRINGBOOT集成**: Spring Boot项目的集成指南。 - **SPRINGBOOT集成多数据源**: 多数据源的配置示例。 - **JFINAL集成和DEMO**: JFinal框架下的集成...
在Linux环境下,使用C++与MySQL数据库进行交互是一...以上就是关于“Linux下C++连接MySQL实例”的主要知识点,这只是一个基础的示例,实际开发中可能涉及到更多复杂的功能,如事务处理、预编译语句、游标、批量插入等。
在本教程中,我们将深入探讨如何使用PHP和MySQL进行动态网站开发。PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发,而MySQL则是一种高效、可靠的开源关系型数据库管理系统。结合两者,我们可以创建功能强大、...
11. **用户权限和安全**:在实际应用中,应避免在代码中硬编码数据库凭据,而应使用环境变量或配置文件来存储这些敏感信息。 通过学习和实践这个Java连接MySQL的实例,开发者可以了解基本的数据库操作,为进一步的...
标题 "NetBeans中web服务实例连接MySQL" 描述的是如何在NetBeans集成开发环境中创建一个Web服务,并将这个服务与MySQL数据库进行连接。这涉及到Java Web开发、数据库管理和API使用等多个知识点。 首先,NetBeans是...