`
china_volcano
  • 浏览: 20183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(原创)mysql实例:在sql语句中使用@变量

阅读更多
计算用户距上次访问的天数,根据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等操作
0
0
分享到:
评论

相关推荐

    PHP+MySQL编程实例:PHP+MySQL编程实例.rar

    3. PHP与MySQL连接:使用mysqli或PDO扩展来建立数据库连接,执行SQL语句,处理结果集。 4. PHP操作MySQL:插入和更新数据、查询记录、删除数据、事务处理以及错误处理。 5. PHP动态网页:利用PHP从MySQL数据库获取...

    mysql数据库CPU高,实时抓住数据库执行中的SQL语句,shell工具(支持mysql5.7)

    #适用于实时查询mysql占用CPU高的语句,循环监控mysql进程情况,当CPU大于一定的前执行中的SQL情况. #执行前,修改ENV认证部分 #编写:Chaoren #2022年3月4日18:38:53 # #对于执行时间非常短的SQL可能监控到的语句...

    sqlserver存储过程语法及实例

    用户变量可以在 MySQL 客户端中使用,例如: ```sql mysql> SELECT 'Hello World' INTO @x ; mysql> SELECT @x ; ``` 用户变量也可以在存储过程中使用,例如: ```sql mysql> CREATE PROCEDURE GreetWorld( ) ...

    批处理文件执行sql语句

    5. **SQL语句的批处理执行**:在批处理文件中,你可以通过命令行工具将SQL语句作为参数传递,或者将SQL语句写入到批处理文件中,通过工具读取并执行。例如,使用SQLCMD,批处理文件可能如下所示: ```batch @echo ...

    MySQL存储过程中实现执行动态SQL语句的方法

    在存储过程中使用动态SQL语句能够增加代码的灵活性和可维护性。 以下是一个实例,展示了如何在MySQL存储过程中实现执行动态SQL语句的方法: 首先,我们创建一个名为`set_col_value`的存储过程,它接受四个输入参数...

    SQL经典游标使用方法

    在SQL中,不同数据库系统如MySQL、SQL Server、Oracle等对游标的实现略有差异,但基本原理是相同的。 1. **创建游标**: 在SQL中,创建游标通常包括定义查询语句和声明游标两步。例如,在SQL Server中,你可以这样...

    c语言操作mysql学习资料

    5. 格式化字符串:在执行SQL语句时,需要将变量格式化为字符串,以便在SQL语句中使用sprintf函数可以实现这个功能,该函数可以将变量按照给定的格式,赋值给字符串。 6. 关闭数据库连接:在操作完数据库后,需要...

    mysql存储过程实例

    语句体中可以包含变量的声明、控制语句、SQL 查询语句等。由于存储过程内部语句要以分号结束,所以在定义存储过程前应将语句结束标志“;”更改为其他字符,并且该字符在存储过程中出现的几率也应该较低,可以用...

    Mysql基本语句实例

    `:显示创建`maclu`数据库时所用的SQL语句。 - **修改数据库** - `ALTER DATABASE t2 CHARACTER SET=utf8;`:将`t2`数据库的字符集改为UTF-8。 - **删除数据库** - `DROP DATABASE t2;`:删除`t2`数据库。 - `...

    Mysql的ODBC操作实例 v2

    总的来说,"Mysql的ODBC操作实例 v2"是一个关于如何在C++中使用ODBC API与MySQL数据库交互的实例,适用于那些希望在VS2012环境下进行数据库操作的开发者。通过对"ClientInfo"等数据库表的操作,我们可以学习如何构建...

    VC6 开发操作mysql数据库 代码 +sql文件 测试可用

    在本文中,我们将深入探讨如何使用Visual C++ 6(简称VC6)开发应用程序,以操作MySQL数据库。这个资源包提供了必要的源代码和SQL文件,确保你可以进行测试并验证其功能。 首先,让我们理解VC6与MySQL的集成。...

    PHP+MySQL动态网站开发全程实例

    在PHP与MySQL的结合应用中,了解如何使用PHP连接MySQL数据库,执行SQL查询,并处理查询结果。这通常涉及到使用PHP的MySQLi或PDO扩展。学会使用预处理语句和事务处理,能有效防止SQL注入攻击,确保数据安全。 本书...

    mysql 基本命令,及java中访问mysql

    ` 可以显示当前MySQL实例中存在的所有数据库。 4. **选择数据库**: 使用 `use 数据库名;` 可切换到指定的数据库。 5. **创建数据库**: 创建数据库的命令是 `create database 数据库名称;`。 6. **创建带编码...

    MySQL 5.1中文手冊

    10.3.8. 在SQL语句中使用COLLATE 10.3.9. COLLATE子句优先 10.3.10. BINARY操作符 10.3.11. 校对确定较为复杂的一些特殊情况 10.3.12. 校对必须适合字符集 10.3.13. 校对效果的示例 10.4. 字符集支持影响到的操作 ...

    BeetlSQL 2.10中文文档

    - **SPRING集成和DEMO**: 如何在Spring项目中使用BeetSql。 - **SPRINGBOOT集成**: Spring Boot项目的集成指南。 - **SPRINGBOOT集成多数据源**: 多数据源的配置示例。 - **JFINAL集成和DEMO**: JFinal框架下的集成...

    linux下C++连接mysql实例

    在Linux环境下,使用C++与MySQL数据库进行交互是一...以上就是关于“Linux下C++连接MySQL实例”的主要知识点,这只是一个基础的示例,实际开发中可能涉及到更多复杂的功能,如事务处理、预编译语句、游标、批量插入等。

    PHP+MySQL动态网站开发实例教程

    在本教程中,我们将深入探讨如何使用PHP和MySQL进行动态网站开发。PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发,而MySQL则是一种高效、可靠的开源关系型数据库管理系统。结合两者,我们可以创建功能强大、...

    Java连接Mysql实例

    11. **用户权限和安全**:在实际应用中,应避免在代码中硬编码数据库凭据,而应使用环境变量或配置文件来存储这些敏感信息。 通过学习和实践这个Java连接MySQL的实例,开发者可以了解基本的数据库操作,为进一步的...

    NetBeans中web服务实例连接MYsql

    标题 "NetBeans中web服务实例连接MySQL" 描述的是如何在NetBeans集成开发环境中创建一个Web服务,并将这个服务与MySQL数据库进行连接。这涉及到Java Web开发、数据库管理和API使用等多个知识点。 首先,NetBeans是...

Global site tag (gtag.js) - Google Analytics