Разгледайте следното запитване:
select
corpus_date as alias
,lead(word, 1) over (partition by corpus order by word_count desc) lead
,max(word_count) over (partition by corpus) max_word_count
from
[publicdata:samples.shakespeare]
where corpus='othello' and length(word) > 10
limit 5
Това ми дава съобщение за грешка Field 'alias' not found.
Но alias
се използва само като псевдоним в тази заявка. Имайте предвид също, че грешката изчезва, ако коментирам или псевдонима, или функцията lead
, или функцията min
. Грешката също изчезва, ако заменя lead
с друга функция за прозорец като min
или sum
, докато грешката остава, ако заменя по същия начин max
, така че необходимите съставки изглеждат
- функцията
lead
- друга функция на прозореца
- поле с псевдоним
Бих искал да знам какво е това как тези функции работят вътрешно, което причинява тази мистериозна грешка.