我对MySQL还是比较陌生的,对数据工程还不太熟悉。
我有一张表,上面有:
Event_ID, Minutes, EventCode我有多个行,它们具有相同的事件代码( Event_ID )和发生了什么事件(eventcode),以及时间(分钟)。
我想要做的是将基于event_id分钟的事件序列输出到新表中:
例如:
来源:
Event_ID, Minutes, EventCode
12, 45, A
12, 49, B
12, 78, A将WOuld转换为:
12, 45, A, 1
12, 49, B, 2
12, 78, B, 3因此,最后一列显示了序列。虽然可以确定源表是按event_id排序的,但如果可能的话,我更希望解决方案是不排序的。
一些指针会很棒的!
谢谢
发布于 2020-02-04 20:08:38
在MySQL 8和更高版本中,您可以使用row_number()窗口函数。
SELECT event_id,
minutes,
eventcode,
row_number() OVER (PARTITION BY event_id
ORDER BY minutes)
FROM elbat;发布于 2020-02-04 21:09:37
尝试此查询:select event_id, minutes, eventcode, @rownum:=@rownum+1 No from elbat, (SELECT @rownum:=0) r;
https://stackoverflow.com/questions/60056995
复制相似问题