如何使用SQL将同一ID的两行数据合并为单行?
合并同一ID同一日期的考勤数据SQL实现
原始数据(Table 1)
| ID | Name | Class | Date | Intime | Outtime | INAM | OUTPM |
|---|---|---|---|---|---|---|---|
| 1 | Smith | 1st | 07-12-2022 | 8:30 AM | Null | P | Null |
| 1 | Smith | 1st | 07-12-2022 | Null | 4:30 PM | Null | P |
需求说明
上述两行数据属于同一ID、同一日期,分别记录了上班和下班信息,需合并为一行得到如下目标结果:
目标数据
| ID | Name | Class | Date | Intime | Outtime | INAM | OUTPM |
|---|---|---|---|---|---|---|---|
| 1 | Smith | 1st | 07-12-2022 | 8:30 AM | 4:30 PM | P | P |
实现SQL语句
SELECT ID, Name, Class, Date, MAX(Intime) AS Intime, MAX(Outtime) AS Outtime, MAX(INAM) AS INAM, MAX(OUTPM) AS OUTPM FROM your_table_name GROUP BY ID, Name, Class, Date;
说明
利用MAX()函数忽略NULL值的特性,对同一ID、姓名、班级、日期分组后的字段取非空值,即可完成两行数据的合并。
内容的提问来源于stack exchange,提问作者bush
相关产品推荐
相关产品推荐

