Можно ли сделать разворот за пределами BigQuery? - PullRequest
0 голосов
/ 27 мая 2019

Допустим, я собираюсь построить следующую сводную таблицу:

// count by age

 age     male     female
 1-25    18       23         
 26-100  19       10

Для этого я могу выполнить базовую агрегацию, подобную этой:

SELECT age, gender, count(*) GROUP BY age, gender

И получить результатынапример:

gender   age    count
male     1-25   18    
male     26-100 19    
male     1-25   23    
male     26-100 10

И затем я могу «построить результаты» вне BigQuery / SQL (например, в javascript или даже в pandas), чтобы получить сводный результат.

Однако ястолкнуться с проблемой, когда значения не могут быть просто «сложены» или вычислены каким-то простым способом.Например:

// distinct users by country

country    male       female
us         192,293    64,000
jp         1,203,203  1,000,000

Есть ли способ получить значение в BigQuery, чтобы мы могли выполнить этот расчет вне BigQuery?Здесь я разместил предыдущий вопрос, где кажется, что вы не можете использовать HLL_COUNT, так как это не , доступное за пределами .[Или есть какой-то другой тип алгоритма, который можно применять для создания какого-то уникального эскиза, который можно объединить вне SQL?].

Или есть другой подход к построению сводных результатов (вне BigQuery), которыйМне не хватает?

Обновление : Приведенные выше примеры служат для краткого обзора проблемы.Фактические сводные запросы будут выглядеть следующим образом: Получите лучшие страны патентов, коды в общедоступном наборе данных BQ , по осям X и Y.

1 Ответ

1 голос
/ 27 мая 2019

Я не понимаю.Почему бы не сделать это внутри BigQuery?

SELECT age,
       COUNTIF( gender = 'male' ) as males,
       COUNTIF( gender = 'female' ) as females
GROUP BY age;
...