我有一个名为event
的表格,格式如下。
user_id event_name sequence_number
1 open 1
1 export 3
1 import 2
1 close 5
1 publish 4
2 close 3
2 open 1
2 import 2
此处sequence_number
说明使用该事件的顺序。例如,对于该特定用户,在sequence_number 2
的事件之前使用了sequence_number 1
的事件。
在上表event
的帮助下,我必须创建另一个名为的表
event_sequence
将显示每个用户的事件顺序。
我们的输出表将如下所示:
user_id event_order
1 open->import->export->publish->close
2 open->import->close
我正在使用postgresql。
非常感谢任何帮助。在此先感谢。
答案 0 :(得分:1)
您可以使用string_agg()
:
select e.user_id,
string_agg(e.event_name, '->' order by sequence_number) as events
from event e
group by e.user_id;