MySQL - 检查连续列是否相同并仅显示那些行

标签 mysql sql

我有一个 events 表,其中包含 ID (id) 和与这些 ID (ideventDate 不是表中唯一的列)。

SQLFiddle here .

+--------+----+---------------------+
| row_id | id | eventDate           |
+--------+----+---------------------+
|      1 |  1 | 2014-02-27 23:19:41 |
|      2 |  1 | 2014-02-27 23:21:41 |
|      3 |  1 | 2014-02-27 23:21:41 |
|      4 |  2 | 2014-02-27 23:23:08 |
|      5 |  2 | 2014-02-27 23:25:08 |
|      6 |  2 | 2014-02-27 23:25:08 |
|      9 |  3 | 2014-02-28 15:36:55 |
|      8 |  3 | 2014-02-28 15:36:55 |
|      7 |  3 | 2014-02-28 15:34:55 |
|     10 |  4 | 2014-02-28 19:31:31 |
|     11 |  4 | 2014-02-28 19:33:31 |
|     12 |  4 | 2014-02-28 19:33:31 |
|     13 |  5 | 2014-02-28 19:33:34 |
|     14 |  5 | 2014-02-28 19:33:33 |
|     15 |  5 | 2014-02-28 19:31:33 |
|     16 |  6 | 2014-03-04 22:40:21 |
|     17 |  6 | 2014-03-04 22:38:21 |
|     18 |  6 | 2014-03-04 22:40:21 |
|     19 |  7 | 2014-03-04 23:08:37 |
|     20 |  7 | 2014-03-04 23:08:38 |
+--------+----+---------------------+

我只想从表中选择那些行,其中 连续 事件日期对于同一 ID 是相同的。

因此,我只想看到这些条目 -

+----+---------------------+
| id | eventDate           |
+----+---------------------+
|  1 | 2014-02-27 23:21:41 |
|  1 | 2014-02-27 23:21:41 |
|  2 | 2014-02-27 23:25:08 |
|  2 | 2014-02-27 23:25:08 |
|  3 | 2014-02-28 15:36:55 |
|  3 | 2014-02-28 15:36:55 |
|  4 | 2014-02-28 19:33:31 |
|  4 | 2014-02-28 19:33:31 |

注意没有

|  6 | 2014-03-04 22:40:21 |
|  6 | 2014-03-04 22:40:21 |

在上面的结果中,因为它们不是连续的。

我知道我可以将 SQL 查询的输出存储在一个文件中,然后使用 unix 工具来执行此操作,但我想知道这是否可以直接通过 SQL 实现。

最佳答案

虽然我的 mySql 有点生疏,但应该能够利用一个组来完成此任务。

SELECT t.*
FROM (
    SELECT  
           id,
           eventDate,
           COUNT(0) AS numRows
    FROM tabl
    GROUP BY id, DATE(eventDate)
    HAVING COUNT(0) > 1
    ORDER BY eventDate
) t

然后,如果您需要额外的列,您只需将这个相关子查询连接回原始表即可。

关于MySQL - 检查连续列是否相同并仅显示那些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22254663/

相关文章:

php - 如何在 SQL 或 PHP 中计算持续时间日期

php - 如何从存储过程中获取特定的 count(*) 列作为字符串或整数

java - JPA、Maven 和 MySQL。配置错误。找不到类 [com.mysql.jdbc.Driver]

mysql - SQL 提取用户组 ID,仅包含指定的用户 ID

sql - Rails : update multiple attributes without validation, 1 sql 事务

python - python 3.5(Anaconda 包)上的 Pymssql 问题 : Dll Load Failed: The Specific Module could not be found

mysql - 使用mysql表访问查找表?

mysql - 从命令提示符使用批处理文件运行 sql 脚本

sql - 从日期间隔获取总等待时间和行数

php - 如何从 MySQL 获取 JSON 信息