在以下查询中,1(如何计算"总和"中的值(6,6,6,10,10,10,9,9,9(?2(为什么使用mod(x,3(,为什么不使用mod(x,2(或mod(x,4(?需要澄清
SELECT
x,
SUM(x) OVER (PARTITION BY MOD(x, 3)) AS sum
FROM UNNEST([1, 2, 3, 4, 5, 4, 3, 2, 1]) AS x;
以上查询在此页面中,https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#sum
回答您的第一个问题 - 在下方运行,只有一个额外的字段
#standardSQL
SELECT
x,
MOD(x, 3) AS x_mod,
SUM(x) OVER (PARTITION BY MOD(x, 3)) AS SUM
FROM UNNEST([1, 2, 3, 4, 5, 4, 3, 2, 1]) AS x
结果是
Row x x_mod sum
1 3 0 6
2 3 0 6
3 1 1 10
4 4 1 10
5 4 1 10
6 1 1 10
7 2 2 9
8 5 2 9
9 2 2 9
如您现在所看到的 - 所有具有相同x_mod的值都是求和的,希望可以解释为什么您看到这些6,6,10,10,10,10,9,9,9,9,9
在您的第二个问题上 - 这只是一个例子 - 使用mod(x,3(背后的任何特殊原因 - 您可以使用mod(x,2(或mod(x,4(并探索行为 - 只是让您学习