这种情况(现实生活中的情况)是:
我有一个带有“log”记录的表,为了简单起见,我们假设只有列NAME,TIME,STATE(实际上没有更多)。共有100万行,其中有100个名称(计算机)和10个状态(生产、空闲、自动、维护…) 这可以解释为:*在t0计算机1处于空闲状态,在t1计算机1处于生产状态。。。等等。你知道吗
I ask your help with replacing IDLE states with their preceding state, if there are less then 5 consecutive idles. Every other state resets the "idle counter", if there are more then 5 idles, keep the 6th and subsequent.
这最好用一个例子来描述,因此对于下面的灰色假设:
STATE
是内联写的ABCD...
描述的状态,I
是空闲状态STATE column I HAVE: AABBCIICAABAIIIIIIIIIAAAIIIBIIAACC...
STATE column I NEED: AABBCCCCAABAAAAAAIIIIAAAAAABBBAACC...
你可以很容易地看到,不到5个空闲状态被前一个状态“运行”了。你知道吗
我们决定,这些短暂的空闲时间是假阳性的,应该被平滑处理(更长的延迟时间,如代码示例中所示)。我有241M记录表,我需要“重新计算”到这个新的格式。 我不是要找一个简单的select,我需要执行一个更新,所以表保持这个新的格式,我以后可以像现在一样使用它。你知道吗
我不是一个完全的sql初学者,到目前为止,我怀疑方法是使用OVER子句,并在分区和前面和后面,但这是我遇到的问题。你知道吗
如果需要的话,我可以使用一种方法做*创建表作为选择。。。*把旧桌子扔了。 我对python也相当精通,但我看不到一种有效地获取、处理和运行这么多更新的方法。你知道吗
非常感谢你的建议。你知道吗
这对你有用吗(我用计数器代替时间戳):
输出为:
相关问题 更多 >
编程相关推荐