[ バージョン ] ドロップダウン リストを使用してサービスを切り替えます。 ナビゲーションの詳細を確認します。
適用対象: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
構文
row_window_session
(
Expr,MaxDistanceFromFirst,MaxDistanceBetweenNeighbors [,Restart])
パラメーター
| 件名 | タイプ | Required | 説明 |
|---|---|---|---|
| Expr | datetime |
✔️ | セッションで値がグループ化された式。 Expr の結果が null 値になると、次の値によって新しいセッションが開始されます。 |
| MaxDistanceFromFirst | timespan |
✔️ | 現在の Expr 値とセッションの開始時の値との間の最大距離を使用して、新しいセッションを開始するタイミングを決定します。 |
| MaxDistanceBetweenNeighbors | timespan |
✔️ | Exprの値から次の値までの最大距離を使用して新しいセッションを開始するための別の基準。 |
| Restart | boolean |
指定した場合、 true に評価されるすべての値がすぐにセッションを再開します。 |
構文規則について詳しく知る。
返品
関数は、各セッションの開始時に値を返します。 次の概念計算モデルを使用します。
Expr 値の入力シーケンスを順番に反復処理します。
値ごとに、新しいセッションを作成するかどうかを決定します。
新しいセッションが作成されると、関数は Expr の現在の値を返します。 それ以外の場合は、 Expr の前の値を返します。
Note
論理 OR 操作を使用して次の条件を満たす場合、値は新しいセッションを表します。
- 以前のセッション値がない場合、または前のセッション値が null の場合。
- Expr の値が前のセッション値に MaxDistanceFromFirst 以上である場合。
- Expr の値が前の Expr の値に加えて、MaxDistanceBetweenNeighbors を超えています。
-
Restart条件が指定され、trueに評価される場合。
例
次の例では、シーケンス datatable 列と Timestamp 列を使用して、テーブルのセッション開始値を計算して、各レコードの時刻を記録します。 データはシーケンス ID とタイムスタンプで並べ替えられた後、 ID、、 Timestamp、および新しい SessionStarted 列の値を返します。 セッションは 1 時間を超えることはできません。 レコードの間隔が 5 分未満で、ID が同じままである限り、継続されます。 この例には、5 分未満の間隔のレコードが含まれています。
datatable (ID:string, Timestamp:datetime) [
"1", datetime(2024-04-11 10:00:00),
"2", datetime(2024-04-11 10:18:00),
"1", datetime(2024-04-11 11:00:00),
"3", datetime(2024-04-11 11:30:00),
"2", datetime(2024-04-11 13:30:00),
"2", datetime(2024-04-11 10:16:00)
]
| sort by ID asc, Timestamp asc
| extend SessionStarted = row_window_session(Timestamp, 1h, 5m, ID != prev(ID))
出力
| ID | タイムスタンプ | SessionStarted |
|---|---|---|
| 1 | 2024-04-11T10:00:00Z | 2024-04-11T10:00:00Z |
| 1 | 2024-04-11T11:00:00Z | 2024-04-11T11:00:00Z |
| 2 | 2024-04-11T10:16:00Z | 2024-04-11T10:16:00Z |
| 2 | 2024-04-11T10:18:00Z | 2024-04-11T10:16:00Z |
| 2 | 2024-04-11T13:30:00Z | 2024-04-11T13:30:00Z |
| 3 | 2024-04-11T11:30:00Z | 2024-04-11T11:30:00Z |