MySQL-如何在MySQL中获取事件

har*_*sng 5 mysql sql

我有MySQL表格中的数据

在此输入图像描述

我想获取员工记录,如下所示

在此输入图像描述

样本数据:

CREATE TABLE `login_details` (
  `idlogin_details` int(11) NOT NULL AUTO_INCREMENT,
  `emp_id` varchar(45) DEFAULT NULL,
  `date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`idlogin_details`)
)

INSERT INTO `login_details` VALUES (1,'3','2018-07-11 05:18:59'),(2,'2','2018-07-11 05:18:59'),(3,'4','2018-07-11 05:18:59'),(4,'1','2018-07-11 05:18:59'),(5,'1','2018-07-13 05:18:59'),(6,'2','2018-07-13 05:18:59'),(7,'3','2018-07-12 05:18:59'),(8,'3','2018-07-13 05:18:59'),(9,'4','2018-07-13 05:18:59'),(10,'5','2018-07-13 05:18:59');
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 4

我不知道您是否打算让该occurrence列出现在结果集中。假设你不这样做,你只需要一个ORDER BY条款。假设你这样做了,那么我们就必须做更多的工作。一种简单的方法是使用相关子查询来查找出现次数:

SELECT
    idlogin_details,
    emp_id,
    date,
    (SELECT COUNT(*) FROM login_details t2
     WHERE t1.emp_id = t2.emp_id AND t2.date <= t1.date) occurrence
FROM login_details t1
ORDER BY
    emp_id, date;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

演示