Допустим, я хочу построить следующую сводную таблицу:
// 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.
Я не понимаю. Почему бы не сделать это внутри BigQuery?
SELECT age,
COUNTIF( gender = 'male' ) as males,
COUNTIF( gender = 'female' ) as females
GROUP BY age;
@ Дэвид542. . . Это не тот вопрос, который вы задали здесь. Если вы не знаете заголовки столбцов, задайте вопрос новый.
здесь добавлен новый вопрос: stackoverflow.com/questions/56370630/…
это становится сложным, и приведенное выше является лишь основным обзором. В наших сводных запросах мы будем делать это как по оси X, так и по оси Y: stackoverflow.com/questions/56283851/…. Другими словами, мы не знаем, с каких заголовков столбцов начинать...