У меня возникли проблемы с запуском итоговых итогов для меня в BigQuery.BigQuery running totalals
Я нашел пример, который работает здесь: BigQuery SQL running totals
SELECT word, word_count, SUM(word_count) OVER(ORDER BY word DESC)
FROM [publicdata:samples.shakespeare]
WHERE corpus = 'hamlet'
AND word > 'a' LIMIT 30
Но что я действительно хочу сделать - это подсчитать число самых популярных слов, которые покрывают 80% от общего word_count. Так что я пытался вычислить работает всего при заказе по word_count первым:
SELECT word, word_count, SUM(word_count) OVER(ORDER BY word_count DESC)
FROM [publicdata:samples.shakespeare]
WHERE corpus = 'hamlet'
AND word > 'a' LIMIT 30
Но я получаю это:
Row word word_count f0_
1 o'er 18 18
2 answer 13 31
3 meet 8 39
4 told 5 44
5 treason 4 **52**
6 quality 4 **52**
7 brave 3 55
Ходовой общая не увеличивается от линии 5 до линии 6. Вероятно потому, что в обоих случаях word_count is 4.
Что я делаю неправильно?
Возможно, есть лучший способ? Мой план состоял в том, чтобы вычислить общее количество. Затем разделите его суммой (word_count) OVER() и фильтруйте только строки с менее чем 80%. Затем подсчитайте количество этих строк.
Спасибо большое! Это настоящая раздача оконных функций. –