Я использую Snowflake SQL
(новичок в синтаксисе и SQL в целом) и пытаюсь получить доступ ко второму уровню моего массива json, чтобы вывести значение name и . Как вы go углубляетесь в массив json, когда значения постоянно меняются ie Там, где написано Chase Operating - xxxx
, есть все разные имена, о которых вы можете подумать, поэтому нет ясного значения ключа для указания .... I Я пытался использовать функцию Flatten, и она просто дублирует то, что у меня уже есть.
Что я делаю не так?
SELECT
c.id,
pnl.PREPARED: "balanceSheet"."report"."Assets"."Cash and Cash Equivalents"."rows" as "banks"
//,lateral flatten(input => parse_json(pnl.PREPARED: "balanceSheet"."report"."Assets"."Cash and Cash Equivalents"."rows"))
FROM
COMPANY c
LEFT JOIN pnl on pnl.COMPANY_ID = c.ID
WHERE
(pnl.PREPARED: "balanceSheet"."report"."Assets"."Cash and Cash Equivalents"."rows") is not null
and pnl.FROM_DATE > '2020-01-31'
AND pnl.TO_DATE <= '2020-2-29'
Попытка функции Flatten
,lateral flatten(input => parse_json(pnl.PREPARED: "balanceSheet"."report"."Assets"."Cash and Cash Equivalents"."rows"))
Результат:
-------------
ID: 10001
Banks:
{
"Chase Operating - 1111": {
"emphasize": false,
"name": "Chase Operating - 1111",
"rawValue": 111.6,
"value": "112"
},
"Chase Payroll - 2222": {
"emphasize": false,
"name": "Chase Payroll - 2222",
"rawValue": 222.21,
"value": "222"
}
}