为什么行显示的BigQuery中的nth_value函数为> = n?

时间:2016-07-04 17:37:37

标签: google-bigquery

下面的代码生成结果,其中变量nt4对于行1,2和3为空。这看起来很奇怪。这是一个错误吗?该值应为''对于窗口函数中的所有行。

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]

1 个答案:

答案 0 :(得分:0)

这不是错误。这是预期的

原因是 - 如果在不指定ROWS或RANGE的情况下使用ORDER BY,则ORDER BY意味着窗口从分区的开头延伸到当前行。有关详细信息,请参阅Window functions

同时,快速解释:

例如,对于" kinghenryviii"分区
第一行的窗口只有一行,带有单词 - " the"
第二行在窗口中有两行 - " the"和" I"
第三 - " the"," I"和" and"

到目前为止,您看到此处没有第4行,因此值为null

对于第四行,窗口中有四行 - " the"," I"," and "和" of" 第五个 - " the"," I"," and"," { {1}}"和" of"

如你所见,从第四行开始 - 第四个值可用,它是" to"

希望这很清楚并帮助你