用于从上一行填充数据的最佳SQL查询(红移)

用于从上一行填充数据的最佳SQL查询(红移),sql,optimization,amazon-redshift,Sql,Optimization,Amazon Redshift,假设我有一个表,其中包含给定实体的一组事务日期/时间条目。比如说 Id Transdate ABC. 2020-02-15 02:34:00 ABC. 2020-02-15 06:23:00 ABC. 2020-02-15 09:34:00 DEF. 2020-02-15 01:34:00 DEF. 2020-02-15 04:23:00 DEF. 2020-02-15 13:34:00 ABC. 2020-02-16 04:40:00 ABC. 2020-02-16 06

假设我有一个表,其中包含给定实体的一组事务日期/时间条目。比如说

Id    Transdate
ABC.  2020-02-15 02:34:00
ABC.  2020-02-15 06:23:00
ABC.  2020-02-15 09:34:00
DEF.  2020-02-15 01:34:00
DEF.  2020-02-15 04:23:00
DEF.  2020-02-15 13:34:00
ABC.  2020-02-16 04:40:00
ABC.  2020-02-16 06:55:00
ABC.  2020-02-16 14:34:00
我需要的是一个表,其中包含给定id一天中所有分钟的条目,其中Transdate的值应该是最后一个值。所以有点像

Id    Minofday     Transdate
ABC.  00:00       <last value from prev date>
ABC.  00:01        <last value from prev date>
....
ABC.  02:34        2020-02-15 02:34:00
ABC.  02:35        2020-02-15 02:34:00
ABC.  02:36        2020-02-15 02:34:00
....
ABC.  06:23        2020-02-15 06:23:00
ABC.  06:24        2020-02-15 06:23:00
....
ABC.  09:34        2020-02-15 09:34:00
<Similarly for DEF & for other dates>
Id Minofday Transdate
美国广播公司。00:00       
美国广播公司。00:01        
....
美国广播公司。02:34        2020-02-15 02:34:00
美国广播公司。02:35        2020-02-15 02:34:00
美国广播公司。02:36        2020-02-15 02:34:00
....
美国广播公司。06:23        2020-02-15 06:23:00
美国广播公司。06:24        2020-02-15 06:23:00
....
美国广播公司。09:34        2020-02-15 09:34:00
要构建am可选查询,以使用SQL以红移方式获取此输出


使用像LAG这样的函数会有帮助吗?

红移在生成行方面非常糟糕。如果你有一个理货台或类似的东西,它会对你有所帮助。