可以在BigQuery之外做一个枢纽吗?

时间:2019-05-27 04:31:18

标签: sql google-bigquery distinct hyperloglog

假设我要构建以下数据透视表:

// 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甚至是熊猫中)“构建结果”,以获取关键的结果。

但是,当无法简单地将这些值“累加”或以某种简单的方式进行计算时,我就会遇到麻烦。例如:

// distinct users by country

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

是否可以在BigQuery中获取值,以便我们可以在BigQuery之外进行此计算?我在这里对此发布了一个先前的问题,在这里您似乎无法使用HLL_COUNT,因为它不是available outside。 [或者是否有其他类型的算法可用于构建某种可以在SQL外部合并的独特草图?]。

或者我还缺少另一种构建枢纽结果的方法(BigQuery之外)?

更新:以上示例旨在更全面地说明问题。实际的数据透视查询将像这样:Get the top patent countries, codes in a BQ public dataset,同时在X和Y轴上显示。

1 个答案:

答案 0 :(得分:1)

我不明白。为什么不在内部 BigQuery中?

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