首页 > 解决方案 > Azure 流分析 - 从当前开始 x 分钟后首先

问题描述

在选择中,我需要在当前的 15 分钟后获取第一行。

我试图通过以下方式做到这一点

注意:在此之前我做一个 TIMESTAMP By a.timestamp

选择

SELECT Lag(a) Over (Partition By a.imdate Limit Duration(hour, 12) When a.timestamp < DATEADD(minute, -15, System.Timestamp))
From a

我的问题是 System.Timestamp 具有被滞后观察到的事件的值,而不是在外部观察到的事件的值,导致为空。

所以,在一个样本中

[
  {
    "timestamp": "2018-12-14T08:30:05.571Z",
    "imdate": 96699
  },
  {
    "timestamp": "2018-12-14T08:16:03.571Z",
    "imdate": 96699
  },
  {
    "timestamp": "2018-12-14T08:03:02.571Z",
    "imdate": 96699
  }
]

在查看第一个和第二个事件时,我希望滞后为我提供第三个事件。

但是,在一个样本中

[
  {
    "timestamp": "2018-12-14T08:30:05.571Z",
    "imdate": 96699
  },
  {
    "timestamp": "2018-12-14T08:24:03.571Z",
    "imdate": 96699
  },
  {
    "timestamp": "2018-12-14T08:23:02.571Z",
    "imdate": 96699
  }
]

我希望延迟为所有这些都提供空值。

或者,在一个样本中

[
  {
    "timestamp": "2018-12-14T08:55:05.571Z",
    "imdate": 96699
  },
  {
    "timestamp": "2018-12-14T08:24:03.571Z",
    "imdate": 96699
  },
  {
    "timestamp": "2018-12-14T08:23:02.571Z",
    "imdate": 96699
  }
]

我希望延迟在观察第一个事件时为我提供第二个事件,但在观察第二个事件时为空。

所以基本上,在最后 15 分钟之后发生的第一个事件。

关于我如何实现这一目标的任何想法?

标签: azure-stream-analytics

解决方案


推荐阅读