Создать динамический c вид числовой последовательности в красном смещении - PullRequest
0 голосов
/ 06 августа 2020

На самом деле я хочу отключить массив json, который сохраняется в столбце красного смещения, для этого я хочу создать динамическое c представление числовой последовательности.

Я могу получить самый большой размер json array, используя SELECT MAX(JSON_ARRAY_LENGTH(metadata)) FROM input_table, тогда я хочу создать представление, подобное следующему

CREATE VIEW seq_0_to_3 AS
SELECT 0 AS i UNION ALL                                      
SELECT 1 UNION ALL
SELECT 2 UNION ALL
............
SELECT max_size_of_json_arrays
)

max json размер массива будет изменяться при добавлении новых данных, так как мне создать динамическое c представление для "n" количество строк

1 Ответ

0 голосов
/ 06 августа 2020

Если у вас достаточно строк в таблице, вы можете использовать:

select seqnum
from (select max(json_array_length(metadata)) over () as max_row,
             row_number() over () as seqnum
      from input_table
     ) i
where seqnum <= max_row;

Обратите внимание, что если таблица намного больше ожидаемого максимального размера, вы можете ограничить количество строк:

select seqnum
from (select max(json_array_length(metadata)) over () as max_row,
             row_number() over () as seqnum
      from (select i.* from input_table limit 1000) i
     ) i
where seqnum <= max_row;

Или, если у вас есть таблица подсчета или календаря, вы можете использовать ее вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...