首页 > 试题广场 >

连续访问记录

[编程题]连续访问记录
  • 热度指数:74 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

表: 访问记录表

+-------------+---------+
| 字段名称     | 类型    |
+-------------+---------+
| 用户id       | int    |
| 访问的页面    | int    |
| 访问页面时间  | VARCHAR|
+-------------+---------+


该表的每一行表示一用户的访问记录

 

现在要求当用户连续访问同一页面时,只保留第一次访问记录

查询结果如下例所示。

 

示例 1:

输入: 表:访问记录表
+------+-----------+-----------+
|用户ID| 访问的页面 | 访问页面时间|
+------+-----------+-----------+
| 1001 | 1         |  3:01:01  |
| 1001 | 1         |  3:04:00  |
| 1001 | 1         |  3:05:43  |
| 1001 | 1         |  3:07:20  |
| 1001 | 2         |  3:10:00  |
| 1001 | 2         |  3:13:00  |
| 1001 | 1         |  3:15:15  |
| 1001 | 2         |  4:00:08  |
| 1001 | 3         |  5:15:29  |
| 1001 | 3         |  6:15:10  |
| 1001 | 3         |  7:56:10  |
| 1001 | 3         |  8:08:00  |
+------+-----------+-----------+ 输出: +------+-----------+-----------+
|用户ID| 访问的页面 | 访问页面时间|
+------+-----------+-----------+
| 1001 | 1         |  3:01:01  |
| 1001 | 2         |  3:10:00  |
| 1001 | 1         |  3:15:15  |
| 1001 | 2         |  4:00:08  |
| 1001 | 3         |  5:15:29  |
+------+-----------+-----------+ 解释: 根据时间排序,连续访问同一页面的保留最早一次访问记录
示例1

输入

CREATE TABLE 访问记录表
(
    用户ID        INT,
    访问的页面        VARCHAR(512),
    访问页面时间         VARCHAR(512)
);
INSERT INTO 访问记录表 (用户ID, 访问的页面, 访问页面时间) VALUES 
(1001, '1', ' 3:01:01 '),
(1001, '1', ' 3:04:00 '),
(1001, '1', ' 3:05:43 '),
(1001, '1', ' 3:07:20 '),
(1001, '2', ' 3:10:00 '),
(1001, '2', ' 3:13:00 '),
(1001, '1', ' 3:15:15 '),
(1001, '2', ' 4:00:08 '),
(1001, '3', ' 5:15:29 '),
(1001, '3', ' 6:15:10 '),
(1001, '3', ' 7:56:10 '),
(1001, '3', ' 8:08:00 ');

输出

用户ID|访问的页面|访问页面时间
1001|1| 3:01:01 
1001|2| 3:10:00 
1001|1| 3:15:15 
1001|2| 4:00:08 
1001|3| 5:15:29