Google bigquery 为什么第n个值在行的BigQuery显示中起作用>;=N

Google bigquery 为什么第n个值在行的BigQuery显示中起作用>;=N,google-bigquery,Google Bigquery,下面的代码生成结果,其中第1、2和3行的变量nt4为null。这看起来很奇怪。这是虫子吗?窗口函数中所有行的值都应为“of” SELECT word, word_count, corpus, NTH_VALUE(word,4) OVER (PARTITION BY corpus ORDER BY word_count DESC) nt4, rank(word) over (PARTITION BY corpus ORDER BY word_count DESC) rank

下面的代码生成结果,其中第1、2和3行的变量nt4为null。这看起来很奇怪。这是虫子吗?窗口函数中所有行的值都应为“of”

SELECT
   word,
   word_count, corpus,
   NTH_VALUE(word,4) OVER (PARTITION BY corpus ORDER BY word_count DESC) nt4,
   rank(word) over (PARTITION BY corpus ORDER BY word_count DESC) rank
FROM
   [publicdata:samples.shakespeare]

这不是一个bug。果然如此

原因是-如果使用ORDER BY而不指定行或范围,ORDER BY意味着窗口从分区的开头延伸到当前行。有关详细信息,请参阅

同时,快速解释:

例如,对于“
kingheryviii
”分区
第一行窗口中只有一行字-“
The

第二行在窗口中有两行-“
the
”和“
I

第三个-“
the
”、“
I
”和“

就您所见,这里没有第四行,因此该值为空

第四行是窗口中的四行-“
”、“
I
”、“
”和“
” 对于第五个-“
”、“
I
”、“
”、“
”和“

如您所见,从forth rows开始-forth值可用,它是“
of


希望这是清楚的,并且对您有所帮助

,但是
LEAD
不会“返回空值”。对于不同的函数,窗口的语义是否不同?