1
我的流分析查詢有語法問題。以下是我的分析數據的查詢,在這裏我想從該事件得到以下字段:Stream Analytics中的語法問題在Azure中運行的查詢:列名無效:'payload'
- 車輛ID
- 以前和當前燃料水平(每 車輛)的差異,
- DIFF電流和以前的里程錶值(每個車輛 )。
非工作QUERY
SELECT input.vehicleId,
FUEL_DIFF = LAG(input.Payload.FuelLevel) OVER (PARTITION BY vehicleId LIMIT DURATION(minute, 1)) - input.Payload.FuelLevel,
ODO_DIFF = input.Payload.OdometerValue - LAG(input.Payload.OdometerValue) OVER (PARTITION BY input.vehicleId LIMIT DURATION(minute, 1))
from input
以下是在其上面的查詢/工作是在一系列事件的跑了一個樣本輸入事件:
{
"IoTDeviceId":"DeviceId_1",
"MessageId":"03494607-3aaa-4a82-8e2e-149f1261ebbb",
"Payload":{
"TimeStamp":"2017-01-23T11:16:02.2019077-08:00",
"FuelLevel":19.9,
"OdometerValue":10002
},
"Priority":1,
"Time":"2017-01-23T11:16:02.2019077-08:00",
"VehicleId":"MyCar_1"
}
以下語法錯誤當Stream Analytics作業運行時拋出:
無效的列名稱:'payload'。不存在具有這種名稱的列。
諷刺的是,下面的查詢工作得很好:
工作QUERY
SELECT input.vehicleId,
FUEL_DIFF = LAG(input.Payload.FuelLevel) OVER (PARTITION BY vehicleId LIMIT DURATION(second, 1)) - input.Payload.FuelLevel
from input
工作的查詢和非工作QUERY之間的唯一diffrence是採用LAG結構的數量。非工作查詢有兩個LAG結構,而WORKING QUERY只有一個LAG結構。
我已經提到了流分析查詢語言,他們只有基本的例子。還嘗試瞭解多個博客。另外,我試過使用GetRecordPropertyValue()函數,但沒有運氣。請建議。
預先感謝您!