获取各表中code为access的最新Timestamp的SQL查询请求
需求说明
获取每个Table中Code为'access'的最新Timestamp,查询无需考虑Status字段。
原始数据表
| Table | Status | Code | Timestamp |
|---|---|---|---|
| Budget | Success | access | 03-02-2024T08:04:23.19Z |
| Property | Failed | access | 03-02-2024T08:04:23.19Z |
| Transfer | Success | access | 03-02-2024T08:04:23.19Z |
| Property | Success | access | 03-02-2024T08:04:23.19Z |
| Load | Success | access | 03-02-2024T00:07:02.54Z |
| Property | Failed | access | 03-02-2024T00:07:02.54Z |
| Transfer | Success | uprow | 03-02-2024T00:07:02.54Z |
| Load | Success | uprow | 01-02-2024T18:17:54.42Z |
| Property | Failed | uprow | 01-02-2024T18:17:54.42Z |
| Transfer | Success | uprow | 01-02-2024T18:17:54.42Z |
SQL查询语句
使用窗口函数按Table分组,取每组内Timestamp最新的记录,同时过滤Code为'access'的数据:
WITH ranked_records AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY "Table" ORDER BY "Timestamp" DESC) AS row_num FROM your_table_name WHERE Code = 'access' ) SELECT "Table", Status, Code, "Timestamp" FROM ranked_records WHERE row_num = 1;
注意:将
your_table_name替换为实际表名;若Timestamp为字符串类型,需确保数据库能正确识别其时间顺序,必要时可先转换为时间类型再排序。
预期查询结果
| Table | Status | Code | Timestamp |
|---|---|---|---|
| Budget | Success | access | 03-02-2024T08:04:23.19Z |
| Property | Failed | access | 03-02-2024T08:04:23.19Z |
| Transfer | Success | access | 03-02-2024T08:04:23.19Z |
| Load | Success | access | 03-02-2024T00:07:02.54Z |
内容的提问来源于stack exchange,提问作者Pranjal
相关产品推荐
相关产品推荐

