Unten Beispiel ist für BigQuery Legacy-SQL (wie es in Ihrer Frage ist)
#legacydSQL
SELECT word, COUNT(*) AS num_words
FROM(FLATTEN((
SELECT SPLIT(LOWER(REGEXP_REPLACE(body, r'[\.\",*:()\[\]/|\n]', ' ')), ' ') word
FROM [fh-bigquery:reddit_comments.2017_08]
WHERE subreddit="The_Donald"
), word))
WHERE NOT word IN (
'the','to','a','and'
)
GROUP EACH BY word
HAVING num_words >= 1000
ORDER BY num_words DESC
BigQuery Team Standard SQL
So verwenden empfiehlt dringend, wenn Sie migrate
entscheiden - unten ist Beispiel in Standard-SQL
Es vorausgesetzt, dass Sie Ihre Stop-Wörter in your_project.your_dataset.stop_words
Tabelle haben
#standardSQL
SELECT word, COUNT(*) AS num_words
FROM `fh-bigquery.reddit_comments.2017_08`,
UNNEST(SPLIT(LOWER(REGEXP_REPLACE(body, r'[\.\",*:()\[\]/|\n]', ' ')), ' ')) word
WHERE subreddit="The_Donald"
AND word NOT IN (SELECT stop_word FROM `your_project.your_dataset.stop_words`)
GROUP BY word
HAVING num_words >= 1000
AND word != ''
ORDER BY num_words DESC
Sie können mit folgenden Dummy-Daten hier testen/spielen Sie
#standardSQL
WITH `your_project.your_dataset.stop_words` AS (
SELECT stop_word
FROM UNNEST(['the','to','a','and']) stop_word
)
SELECT word, COUNT(*) AS num_words
FROM `fh-bigquery.reddit_comments.2017_08`,
UNNEST(SPLIT(LOWER(REGEXP_REPLACE(body, r'[\.\",*:()\[\]/|\n]', ' ')), ' ')) word
WHERE subreddit="The_Donald"
AND word NOT IN (SELECT stop_word FROM `your_project.your_dataset.stop_words`)
GROUP BY word
HAVING num_words >= 1000
AND word != ''
ORDER BY num_words DESC
Im Fall, dass Sie Ihre eigenen Listen Stoppwort machen: https://stackoverflow.com/a/47058865/132438 –