Формат данных запроса Redshift - PullRequest
0 голосов
/ 11 октября 2018

один из столбцов содержит данные в следующем формате:

column_name_a:
abcd/date=2018-01-01/part-0001-asdfasdfasdf
abcd/date=2018-01-01/part-0002-asdfasdfasdf
abcd/date=2018-01-02/part-0001-asdfasdfasdf
abcd/date=2018-01-02/part-0002-asdfasdfasdf
abcd/date=2018-01-03/part-0001-asdfasdfasdf
abcd/date=2018-01-03/part-0002-asdfasdfasdf
abcd/date=2018-01-03/part-0003-asdfasdfasdf
abcd/date=2018-01-03/part-0004-asdfasdfasdf

.....

Теперь мне нужно получить количество файлов по дням или по номеру детали.

Как мне написать запрос?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Добавляя к ответу Нейта, вы можете использовать split_part несколько раз, чтобы получить то, что вам нужно:

Чтобы получить дату:

select split_part(split_part('abcd/date=2018-01-01/part-0001-asdfasdfasdf','/',2),'=',2)     

Чтобы получить номер детали:

select split_part(split_part('abcd/date=2018-01-01/part-0001-asdfasdfasdf','/',3),'-',2)
0 голосов
/ 11 октября 2018

Использовать split_part.В строке по-прежнему будет указано «date =».

date = split_part (column_name_a, '/', 2)

part_number = split_part (column_name_a, '/', 3)

подробности здесь ... https://docs.aws.amazon.com/redshift/latest/dg/SPLIT_PART.html

...