#sql #google-analytics #presto
#sql #google-аналитика #presto
Вопрос:
У меня есть следующие столбцы в таблице Presto
sku | продукт |
---|---|
012345 | [‘(productsku=’012345′, название=’это название’, …)’] |
где столбец продукта представляет собой массив строк
Как я могу написать SQL-запрос, чтобы найти индекс артикула в списке продуктов (например, в позиции ProductList)?
Ответ №1:
Одним из подходов было бы преобразовать массив строк в массив продуктов и использовать array_position
:
WITH dataset(sku, product) AS ( values (1, array[cast(ROW(1) as ROW(productsku INTEGER)),cast(ROW(2) as ROW(productsku INTEGER))]), (2, array[cast(ROW(1) as ROW(productsku INTEGER)),cast(ROW(2) as ROW(productsku INTEGER))]), (3, array[cast(ROW(1) as ROW(productsku INTEGER)),cast(ROW(2) as ROW(productsku INTEGER))]) ) select array_position(transform(product, r -gt; r.productsku), sku) from dataset
Выход:
_col0 |
---|
1 |
2 |
0 |