Допустим, следующий запрос, связанный с Google Analytics (см. Ниже).
Мне нужно подставить код столбца «Канал», чтобы для каждого уникального значения требовался отдельный столбец, и преобразовать в 0 и 1 значения.
Для стандарта SQL кто-нибудь знает, как добиться этого на стандартном SQL языке?
Обратите внимание, что приведенный ниже запрос используется только в качестве примера. Существуют запросы, в которых мне необходимо создать фиктивный код, который является более сложным, и где простых операторов CASE WHEN недостаточно для генерации «дублированного» результата.
#standardSQL
SELECT device.deviceCategory AS Device, channelGrouping AS Channel, SUM(totals.visits) AS Sessions
FROM `[project_id].[dataset_id].[table_id]`
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)) # previous 13 weeks
AND FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
GROUP BY Device, Channel
Пример, предположим следующую таблицу (для иллюстрации (в формате CSV):
Device,Channel,Sessions
Desktop,Organic,25
Desktop,Paid,30
Desktop,Affiliate,14
Mobile,Organic,26
Mobile,Paid,66
Mobile,Affiliate,70
Желаемый результат:
Device,Organic,Paid,Affiliate,Sessions
Desktop,1,0,0,25
Desktop,0,1,0,30
Desktop,0,0,1,14
Mobile,1,0,0,26
Mobile,0,1,0,66
Mobile,0,0,1,70