手机扫一扫访问本页内容

微信扫描点右上角"···"分享到好友或朋友圈

关闭
微信扫一扫可打开小程序

微信长按图片或搜“分享录”可打开小程序

关闭
MySQL,SQL,面试 , , , ,

【面试题】查询出每个人的最早和最晚打卡记录

每个人每天在公司都会有很多打卡记录,已知某天的打卡记录如下,现要求查询出当天每个人的考勤记录即最早和最晚打卡记录。

首先创建出表和数据。

#建库
CREATE DATABASE test charset utf8mb4 collate utf8mb4_0900_as_cs;
#建表
DROP TABLE IF EXISTS clock_record;
CREATE TABLE clock_record (
    id INT PRIMARY KEY AUTO_INCREMENT comment '主键',
    employee_id INT(8) default 0 comment '工号',
    name VARCHAR(16) default '' comment '姓名',
    check_date DATETIME default now() comment '打卡日期时间'
) engine=innodb  CHARSET=utf8mb4 collate utf8mb4_0900_as_cs comment '员工打卡考勤表';
#插入数据
INSERT INTO clock_record (employee_id, name, check_date)
VALUES
(10000001, '小明', '2024-06-05 09:00:01'),
(10000001, '小明', '2024-06-05 11:47:31'),
(10000001, '小明', '2024-06-05 14:57:11'),
(10000001, '小明', '2024-06-05 15:37:21'),
(10000001, '小明', '2024-06-05 18:05:07'),
(10000002, '张三', '2024-06-05 09:02:07'),
(10000002, '张三', '2024-06-05 12:15:06'),
(10000002, '张三', '2024-06-05 16:05:07'),
(10000002, '张三', '2024-06-05 17:25:37'),
(10000002, '张三', '2024-06-05 18:08:17'),
(10000003, '李四', '2024-06-05 09:01:20'),
(10000003, '李四', '2024-06-05 12:01:27'),
(10000003, '李四', '2024-06-05 14:00:05'),
(10000003, '李四', '2024-06-05 17:12:36'),
(10000003, '李四', '2024-06-05 18:02:23');

这道题主要考察min、max和group by的使用语法,可以用下面的语句查询出想要的结果。

select name,min(check_date),max(check_date) from clock_record group by name;

展开阅读全文


上一篇:

下一篇:

服务器又要到期了鼓励一下吧
您还可以访问本站的小程序、公众号等所有端,或者下载APP, 在小程序、APP上可以评论文章以及保存图片还有在线客服哦,如您有任何疑问或建议可向作者提出意见反馈
扫码打开小程序可评论文章保存图片,在“我的”有实时在线客服哦,看效果?
关注我的公众号为您分享各类有用信息
分享录多端跨平台系统