在q/kdb+中查询员工当前及过往职位(基于更新日期)
查询员工当前及过往职位(基于日期对比)
技术需求
通过对比当前日期与历史更新日期,查询员工的当前及过往职位。
数据初始化代码
flip dc:`eid`name`titleID`title`lastupdate!(("1234" ;"1234"; "1234" ;"9835" ;"9835"; "9835"; "0982");("Jhon";"Jhon";"Jhon";"Chris";"Chris";"Chris";"jack");("09561";"08123";"08123" ;"07812"; "05234"; "05234"; "08123");("SalesManager";"Salesexecutive";"Salesexecutive";"SeniorSalesExecutive";"Salesexecutive";"Salesexecutive";"salesmanager");2023.06.26 2023.06.25 2023.06.20 2023.06.26 2023.06.25 2022.06.20 2022.01.19)
员工数据表(EmployeeTAB)
| 员工ID(eid) | 姓名(name) | 职位ID(titleID) | 职位(title) | 最后更新日期(lastupdate) |
|---|---|---|---|---|
| "1234" | "Jhon" | "09561" | 销售经理(Sales Manager) | 2023.06.26 |
| "1234 " | "Jhon" | "08123" | 销售主管(Sales executive) | 2023.06.25 |
| "1234" | "Jhon" | "08123" | 销售主管(Sales executive) | 2022.06.20 |
| "9835" | "Chris" | "07812" | 高级销售主管(Senior Sales executive) | 2023.06.26 |
| "9835" | "Chris" | "05234" | 销售主管(Sales executive) | 2023.06.25 |
| "9835" | "Chris" | "05234" | 销售主管(Sales executive) | 2022.06.20 |
| "0982" | "Jack" | "08123" | 销售经理(Sales Manager) | 2022.01.19 |
查询语句及结果
使用以下Q语言查询语句可获取员工最新更新的职位记录:
select from EmployeeTAB where lastupdate<td,lastupdate=(max;lastupdate) fby eID;
输出结果:
| 员工ID(eID) | 姓名(name) | 职位ID(titleID) | 职位(title) | 最后更新日期(lastupdate) |
|---|---|---|---|---|
| "1234" | "Jhon" | "09561" | 销售经理(Sales Manager) | 2023.06.26 |
| "1234" | "Jhon" | "08123" | 销售主管(Sales executive) | 2023.06.25 |
| "9835" | "Chris" | "07812" | 高级销售主管(Senior Sales executive) | 2023.06.26 |
| "9835" | "Chris" | "05234" | 销售主管(Sales executive) | 2023.06.25 |
内容的提问来源于stack exchange,提问作者coderinq
相关产品推荐
相关产品推荐

