我将此JSON结构提供给我的ASA:
[{
"Stages": [
{
"Name": "Stage 1",
"Count": 45,
"First": "2018-12-17T11:31:12.7448439-04:00",
"Average": 1.0,
"Max": 0.0
},
{
"Name": "Stage 2",
"Count": 7,
"First": "2018-12-17T11:31:12.7448469-04:00",
"Average": 0.0,
"Max": 0.0
}
],
"DateTimeET": "2018-12-17T11:31:12.7448477-04:00",
"Division": "One"
}]
我坚持如何获取Stages数组中每个元素的名称,计数,第一,平均值和最大值。
我这样做:
WITH CTE AS (
SELECT
event.Division
,event.DateTimeET
,StageElement
FROM
StageSummary AS event
CROSS APPLY getarrayelements(event.Stages) AS StageElement
)
SELECT
event2.Division
,event2.DateTimeET
,event2.StageElement
FROM
CTE AS event2
我可以使用GetRecordProperties获得数组,但是我又获得了完整的数组,我无法获得特定的“名称”或“计数”
感谢您的帮助。
更新:
我正在使用如下查询:
WITH CTE AS (
SELECT
event.Division
,event.DateTimeET
,StageElement
FROM
StageSummary AS event
CROSS APPLY getarrayelements(event.Stages) AS StageElement
)
SELECT
event2.Division
,event2.DateTimeET
,getrecordpropertyvalue(Elements,'Name') AS NameValue
FROM
CTE AS event2
CROSS APPLY getrecordproperties(event2.StageElement) AS Elements
但NameValue返回空。
答案 0 :(得分:3)
由于我的Stages数组的结构是固定的,因此解决方案是使用ArrayValue这样查询每个元素:
SELECT
event.Division
,event.DateTimeET
,StageElement.ArrayValue.Name
,StageElement.ArrayValue.Count
,StageElement.ArrayValue.First
,StageElement.ArrayValue.Average
,StageElement.ArrayValue.Max
FROM
StageSummary AS event
CROSS APPLY getarrayelements(event.Stages) AS StageElement
这给了我所需的价值。我缺少ArrayValue来引用实际数据,因为GetArrayElements返回ArrayValue和ArrayIndex