【发布时间】:2021-09-05 14:40:54
【问题描述】:
我有一个交互表,其中每个交互都分配了一个 id_agent。有些行的 id_agent 具有空值,我想为其分配下一个非空值。我可以使用下一行的前导函数来执行此操作,但是,我有多个连续行的实例,其中 id_agent 为空
当前数据:
| id_agent | ts_end_utc | inbound_or_outbound | interaction_channel | id_ticket |
|---|---|---|---|---|
| -2 | 2020-09-15 9:40:04 | Inbound | supportbot | 93789075 |
| 299210763 | 2020-10-10 16:00:23 | Outbound | messaging | 93789075 |
| Null | 2020-10-12 8:46:05 | Inbound | messaging | 93789075 |
| Null | 2020-10-12 10:38:07 | Inbound | messaging | 93789075 |
| Null | 2020-10-15 8:25:23 | Inbound | messaging | 93789075 |
| 234926893 | 2020-10-15 17:45:58 | Outbound | messaging | 93789075 |
| 299210763 | 2020-10-28 19:05:49 | Outbound | messaging | 93789075 |
| Null | 2020-11-09 6:50:13 | Inbound | messaging | 93789075 |
| 299210763 | 2020-11-09 13:03:05 | Outbound | messaging | 93789075 |
期望状态:
| id_agent | ts_end_utc | inbound_or_outbound | interaction_channel | id_ticket |
|---|---|---|---|---|
| -2 | 2020-09-15 9:40:04 | Inbound | supportbot | 93789075 |
| 299210763 | 2020-10-10 16:00:23 | Outbound | messaging | 93789075 |
| 234926893 | 2020-10-12 8:46:05 | Inbound | messaging | 93789075 |
| 234926893 | 2020-10-12 10:38:07 | Inbound | messaging | 93789075 |
| 234926893 | 2020-10-15 8:25:23 | Inbound | messaging | 93789075 |
| 234926893 | 2020-10-15 17:45:58 | Outbound | messaging | 93789075 |
| 299210763 | 2020-10-28 19:05:49 | Outbound | messaging | 93789075 |
| 299210763 | 2020-11-09 6:50:13 | Inbound | messaging | 93789075 |
| 299210763 | 2020-11-09 13:03:05 | Outbound | messaging | 93789075 |
我知道以后如何使用 case 语句使列看起来符合要求,但我将如何设置逻辑/函数以获取下一个非空值?
【问题讨论】:
标签: mysql sql hive hiveql window-functions