我有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)
我不知道您是否打算让该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)