我有一个类似于此代表性数据集的数据集(它是此查询的结果集):
time
2012-02-01 23:43:16.9088243 <--
2012-02-01 23:43:16.9093561
2012-02-01 23:43:16.9098879
2012-02-01 23:43:17.1018243 <--
2012-02-01 23:43:17.1023561
2012-02-01 23:43:17.1028879
2012-02-01 23:43:17.2018243 <--
2012-02-01 23:43:17.2023561
2012-02-01 23:43:17.2028879
结果包含数百万行,所以现在我们需要一种方法来精简它,以便我们可以分析它。
如果您注意到,上面示例的前三行彼此之间的间隔在千分之一秒以内,但是后面三行之间的间隔为十分之一秒,下面三行之间的间隔也为十分之一秒。我添加了空行(不是在原始数据中)来说明这一点。
我需要一个查询,将识别那些时间戳是超过千分之一秒的距离上一个时间戳。由此产生的输出(假设第一组三个也与前一组相差十分之一秒)将是:
2012-02-01 23:43:16.9088243
2012-02-01 23:43:17.1018243
2012-02-01 23:43:17.2018243
我已经知道我可能需要一些行号功能和分区,但是我不能完全理解它。
1条答案
按热度按时间q3qa4bjr1#
你可以用
lag()
为此: