使用postgresSQL 13.6
根据此处的问题Add value on one column based on values of a group of rows。
对于按 service_num 分组的行,可以使用其中一行中已包含的相同文本填充该组的剩余行。
与表:
约会时间 | 大车 | 根据 | 服务编号 | 类型 |
---|---|---|---|---|
2022 08 23 10:10 | 啊 | 出去 | aa/202208/1 | |
2022 08 23 10:20 | 啊 | aa/202208/1 | ||
2022 08 23 10:30 | 啊 | 在 | aa/202208/1 | 公司的 |
2022 08 23 10:05 | bb | 出去 | bb/202208/1 | |
2022 08 23 10:10 | bb | bb/202208/1 | 私人的 | |
2022 08 23 10:30 | bb | bb/202208/1 | ||
2022 08 23 10:35 | bb | 在 | bb/202208/1 | |
2022 09 23 10:10 | 啊 | 出去 | aa/202209/1 | |
2022 09 23 10:20 | 啊 | aa/202209/1 | 其他 | |
2022 09 23 10:30 | 啊 | 在 | aa/202209/1 |
像这样填充:
约会时间 | 大车 | 根据 | 服务编号 | 类型 |
---|---|---|---|---|
2022 08 23 10:10 | 啊 | 出去 | aa/202208/1 | 公司的 |
2022 08 23 10:20 | 啊 | aa/202208/1 | 公司的 | |
2022 08 23 10:30 | 啊 | 在 | aa/202208/1 | 公司的 |
2022 08 23 10:05 | bb | 出去 | bb/202208/1 | 私人的 |
2022 08 23 10:10 | bb | bb/202208/1 | 私人的 | |
2022 08 23 10:30 | bb | bb/202208/1 | 私人的 | |
2022 08 23 10:35 | bb | 在 | bb/202208/1 | 私人的 |
2022 09 23 10:10 | 啊 | 出去 | aa/202209/1 | 其他 |
2022 09 23 10:20 | 啊 | aa/202209/1 | 其他 | |
2022 09 23 10:30 | 啊 | 在 | aa/202209/1 | 其他 |
类型文字可以出现在每组的任何一行中。
我正在尝试使用lag
仅复制选择列上一行中的内容的表达式
从外观上看,您可以使用该组的最大值或最小值更新每个组:
未经测试。
您可以考虑将类型移动到单独的表(因为它似乎依赖于当前表中的非关键属性)