sql - Write a query to get for each person, for each date - what is his last out_time?
问题描述
I have table: EMPLOYEE
EMP_ID DATE IN_TIME OUT_TIME
111 01-Jan-2019 09:00 12:00
111 01-Jan-2019 13:00 16:00
111 01-Jan-2019 16:30 18:00
111 02-Jan-2019 08:00 11:00
111 02-Jan-2019 12:00 17:00
222 01-Jan-2019 10:00 14:00
222 01-Jan-2019 15:00 20:00
222 02-Jan-2019 08:30 11:30
222 02-Jan-2019 13:00 18:30
Write a query to get for each person, for each date - what is his last out_time?
Expected output:
EMP_ID DATE IN_TIME OUT_TIME
111 01-Jan-2019 16:30 18:00
111 02-Jan-2019 12:00 17:00
222 01-Jan-2019 15:00 20:00
222 02-Jan-2019 13:00 18:30
解决方案
使用max()
:
select emp_id, convert(date, out_time), max(out_time)
from t
group by emp_id, convert(date, out_time);
推荐阅读
- elasticsearch - 如何在流利的配置中使用多进程工作者
- html - 如何使用 Flexbox 创建 Spotify 布局?
- can-bus - 使用带有 CAN_TP 的 UDS 服务通过 CAN 接收一帧 256 字节数据
- amazon-web-services - Aws-Lambda 导出默认功能不起作用
- pci - 外部 PCIe 布线规范的详细信息?
- angular - angular mat-datepicker:选择日期后出错
- bash - 使用 getopts 的 Bash 脚本不接受多个参数
- java - java中更改数组内容时如何更改引用的变量
- javascript - 添加到 json 对象中的浮点数
- javascript - 使用 javascript 提高和降低画布亮度和对比度的性能改进