Новичок в bigquery, и у меня есть проблема, которая, на мой взгляд, широко применима для множества различных групповых / манипуляций с данными. Любая помощь с благодарностью! Я запускаю следующий запрос, который группирует по команде, игре и по зонам, и возвращает счетчик для каждого:
SELECT
rebounds.team_id,
rebounds.game_id,
CASE
WHEN distance < 4 THEN 'zone1'
WHEN NOT some_bool THEN 'zone2'
WHEN distance >= 4 and distance2 < 12 THEN 'zone3'
WHEN some_bool AND distance >= 4 THEN 'zone4'
END AS this_zone,
COUNT(*) AS my_count
FROM t1
GROUP BY 1,2,3
И я получаю следующую таблицу (показывающую для одной комбинации game_id / team_id для простоты, чтобы подчеркнутьвопрос):
team_id game_id this_zone my_count
12 15 zone1 5
12 15 zone2 3
В приведенном выше примере не было никаких наблюдений, которые соответствовали бы критериям для zone3, и в результате таблица вернула только две строки для этой комбинации game_id + team_id. Однако я хотел бы иметь 3-ю строку, чтобы таблица выглядела следующим образом:
team_id game_id this_zone my_count
12 15 zone1 5
12 15 zone2 3
12 15 zone3 2
12 15 zone4 0
Возможно ли это, чтобы указать одну из переменных groupby (в данном случае this_zone
), и иметьbigquery создать строку со счетчиком 0, если счет равен нулю?
РЕДАКТИРОВАТЬ : я обновил CASE WHEN, чтобы более точно отражать сложность создания зон. Короче говоря, они полагаются на два разных числовых значения (расстояние и расстояние2 в этом примере), а также логическое значение (some_bool)