为Rank()Bigquery的人建立排名

时间:2017-11-16 06:58:54

标签: sql google-bigquery google-data-studio

我有列表:

person |  x1  |  x2 |  par1 | par1_detailed

所以,我需要根据x1 / x2参数“par1”,“par1_detailed”对这些人进行排名。我在这个用例中的工作示例:

SELECT
  person ,
  SUM(x1) AS y,
  SUM(x2) AS x,
  (SUM(x1)/SUM(x2) - 1) AS z,
  RANK() OVER (PARTITION BY par1, par1_detailed ORDER BY z DESC) AS rank,
  par1,
  par1_detailed 
FROM
  [table]
GROUP BY
  person,
  par1,
  par1_detailed 

我正在使用“排名”对Google Data Studio中的某些表进行排序,它对于包含par1和par1_detailed的表以及我在par1_detailed上使用过滤器的表格非常有效。

因此,当我想要在没有par1_detailed过滤器的情况下对表进行排序或在par1_datailed中选择过滤所有数据时,问题就开始了。对于那种情况,排名计算错误。我明白为什么它在讨价还价(我需要重新计算x1 / x2比率,因为z的总和在这种情况下不显示真正的x1 / x2比率)但我不知道为我的用例创建查询的热点。

修改

表中的数据如下所示:

 person1    10101.455000000005  8793.739999999998    201701 (par1)  20170131 (par1_detailed)

这里有任何帮助吗?

0 个答案:

没有答案