【发布时间】:2017-01-15 15:43:33
【问题描述】:
我正在尝试为用户关联两种类型的事件。我想在“A”事件之前查看该用户的所有事件“B”以及最近的事件“A”。如何做到这一点?特别是,我正在尝试在 Postgres 中执行此操作。
我希望可以在窗口函数中使用“where”子句,在这种情况下,我基本上可以使用“where event='A'”执行 LAG(),但这似乎没有有可能。
有什么建议吗?
数据示例:
|user |time|event|
|-----|----|-----|
|Alice|1 |A |
|Bob |2 |A |
|Alice|3 |A |
|Alice|4 |B |
|Bob |5 |B |
|Alice|6 |B |
想要的结果:
|user |event_b_time|last_event_a_time|
|-----|------------|-----------------|
|Alice|4 |3 |
|Bob |5 |2 |
|Alice|6 |3 |
【问题讨论】:
标签: sql postgresql window-functions