回答

收藏

在给定唯一ID的情况下,仅选择其列之前已更改的行

技术问答 技术问答 304 人阅读 | 0 人回复 | 2023-09-12

我有一个postgreSQL数据库,我想记录具体列随时间变化的方式。! C& r. d7 ]- O/ T
personID | status | unixtime | column d | column e | column f                213214         x            y        z                21325               x            y        z                21326           x            y        z                21327                 x            y        z                21328                    x            y        z              30                        x            y        z            3                                                           33313131                                                                          x            y        z             33332                                                         x            y        z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        x            y        z我想跟踪一段时间内的所有状态。因此,基于此,我想要一个新的手表table其中包括以下数据:( d5 \( O, M: D0 D1 D  S
personID | status | unixtime | column d | column e | column f                213214         x            y        z                 333333                                                    x            y        z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        x            y        zx,y,z是的,变量会在每一行之间变化。这些手表也有成千上万的personID,但是我想捕捉ID也有变化。根据状态,personid单个分组是不够的(如我所见),因为我可以存储相同的状态和personID几行,就像状态发生了变化一样。0 T) W3 @3 b/ c6 I; k
我在Python这个操作在中间执行,但是速度很慢(而且我猜是的IO也很多):3 V% w, X2 Y7 @* ?% \& R1 ~/ @
for person in personid:    status = -1    records = getPersonRecords(person) #sorted by unixtime in query    newrecords =     for record in records:        if record.status != status:                 status = record.status                 newrecords.append(record)    appendtoDB(newrecords)                ) L7 m+ C' K; [3 e4 L" I
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则