Возможно ли получить позицию элемента в массиве в Google BigQuery? Что-то вроде функции array_postion в Postgresql?
В частности, мне нужно получить позицию элемента в массиве после unnest array:
WITH data_table AS
(SELECT '{"fruit":[{"apples":5,"oranges":10},{"apples":2,"oranges":4}]}' AS data)
SELECT fruit, ? as position
FROM data_table, UNNEST(JSON_EXTRACT_ARRAY( data, '$.fruit')) as fruit
fruit | position
-------------------------------------
{"apples":5,"oranges":10} | 1
{"apples":2,"oranges":4} | 2
Я пробую обходной путь с помощью row_number (), но я Не уверен насчет сортировки
WITH data_table AS
(SELECT '{"fruit":[{"apples":5,"oranges":10},{"apples":2,"oranges":4}]}' AS data)
SELECT fruit, ROW_NUMBER() OVER() AS position
FROM data_table, UNNEST(JSON_EXTRACT_ARRAY( data, '$.fruit')) as fruit