[英]BigQuery finding sessions that have visited both pageA (contains keyword "main") and pageB (contains keyword "side")
[英]BigQuery unexpected keyword
我剛剛開始使用 Google BigQuery,並且在我的第一個查詢中遇到了問題。 我正在嘗試獲取自 2015 年 1 月 1 日以來(包括 2015 年 1 月 1 日)的 Stack Overflow 帖子列表,這些帖子具有多個標簽之一。 以下是我在查詢中的第一遍:
#standardSQL
SELECT
title,
body,
answer_count,
creation_date,
tags,
view_count
FROM
`bigquery-public-data.stackoverflow.posts_questions` limit 10
WHERE
creation_date >= "2015-01-01" AND tags HAVING "terraform" OR "chef" OR "puppet" OR "ansible"
BigQuery 驗證器顯示以下錯誤消息:
錯誤:語法錯誤:[14:1] 處的意外關鍵字 WHERE
您有一些語法錯誤,即錯誤位置的limit 10
和錯誤使用HAVING
關鍵字。 我還將使用本機timestamp
而不是比較字符串:
#standardSQL
SELECT
title,
body,
answer_count,
creation_date,
tags,
view_count
FROM
`bigquery-public-data.stackoverflow.posts_questions`
WHERE
creation_date >= TIMESTAMP('2015-01-01')
AND tags IN ('terraform',
'chef',
'puppet',
'ansible')
LIMIT
10
這里有一些問題,但是希望這會有所幫助:
這樣說來,此查詢可能就是您想要的:
#standardSQL
SELECT
title,
body,
answer_count,
creation_date,
tags,
view_count
FROM `bigquery-public-data.stackoverflow.posts_questions`
WHERE creation_date >= "2015-01-01" AND
EXISTS (
SELECT 1 FROM UNNEST(SPLIT(tags, "|")) AS tag
WHERE tag IN ("terraform", "chef", "puppet", "ansible")
)
LIMIT 10;
請注意,我需要在tags
列中使用SPLIT
,因為標簽由豎線字符分隔。 由於您可以免費獲得TB級的查詢,因此請嘗試一次獲取所有結果而不是使用LIMIT來充分利用它。
SELECT
用戶類型,CONCAT(start_station_name, " to ",end_station_name) AS route, COUNT(*) as num_trips, ROUND(AVG(cast(tripduration as int64)/60),2) AS duration FROM bigquery-public-data.new_york_citibike.citibike_trips
GROUP BY start_station_name,end_station_name,usertype,ORDER BY num_trips DESC LIMIT 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.