# #sql #excel #google-bigquery #pivot-table
#sql #превосходить #google-bigquery #сводный стол
Вопрос:
У меня есть вопрос, касающийся переноса данных в BQ (или фактически экспорта и выполнения его в Excel). Я пытаюсь получить этот результат (извините, я новичок и не знаю, как разделить 2 столбца, вариант 1 и вариант 2 должны быть 2 столбцами) :
КлиентИД | Дата | Вариант 1. Вариант 2 |
---|---|---|
AB | 12/2 | 123. 456 |
Мой текущий запрос выдаст этот вывод:
КлиентИД | Дата | Вариант |
---|---|---|
AB | 12/1 | 123 |
AB | 12/2 | 456 |
SELECT DISTINCT case when (hits.ecommerceAction.action_type = '3') then date end date, [enter image description here][1] clientId AS client_id, page.pagepath as pagepath, product.productVariant as variant, FROM `xxxx.ga_sessions_`, UNNEST(hits) AS hits, unnest(hits.product) as product
Есть ли что-нибудь, что я могу использовать для выполнения шага транспонирования? Мой текущий вывод больше похож на основные данные, вся информация, связанная с продуктом, находится в одном столбце. Буду признателен, если вы сможете поделиться какими-либо мыслями!
Комментарии:
1. вы уверены, что представленный запрос действительно дает какой-либо результат? если да, не могли бы вы поделиться образцом результатов, чтобы мы могли использовать его в качестве отправной точки и в дальнейшем помочь вам
2. @MikhailBerlyant Привет, я только что обновил скриншот вывода здесь в качестве ссылки, спасибо!
3. изображение — это что-то сложное в использовании-не могли бы вы, пожалуйста, скопировать результат вставки в виде текста, чтобы мы могли с ним поиграть. также не ясно, какой ожидается результат — пожалуйста, добавьте его в свой вопрос тоже
4. Привет, извините, я супер новичок и не знаю, как разделить 2 столбца, вариант 1 и вариант 2 должны быть 2 столбцами. Я принял ваше предложение и обновил таблицы, надеюсь, что это лучше! @Михаил Берлянт
5. смотрите мой ответ вместе с комментарием под ним!
Ответ №1:
Рассмотрим следующий подход
select * from ( select ClientID, Variant, Pagepath, max(Date) over win Date, row_number() over (win order by Date) pos from your_current_output window win as (partition by ClientID) ) pivot (any_value(Variant) as Variant, any_value(Pagepath) as Pagepath for pos in (1,2,3))
если обратиться к образцу в вашем вопросе
with your_current_output as ( select '12/1' Date, 123 ClientID, 'abc' Variant, 'fis.com' Pagepath union all select '12/2', 123, 'efg', 'fere.com' )
выход есть
Комментарии:
1. Эй, ты слишком часто меняешь свой вопрос. Примечание: Я предоставил ответ на эту версию вашего вопроса и соответствующие образцы данных, которые я видел около 10 минут назад.
2. Привет, это сработало идеально! Хорошо бы научиться выполнять команду транспонирования в Большом запросе, так привык к процессу транспонирования в SAS. Спасибо за знания, приняли ответ.