我需要每週顯示不同的用戶。我有一個日期訪問列和一個用戶ID,它是一個有10億行的大表。 我可以將CSV的日期列更改爲年,月,日的列。但是如何從查詢中推斷出這一週。 我可以從CSV中計算一週,但這是一個很大的流程步驟。在bigquery中使用周和年數
我還需要顯示有多少不同用戶日復一日地訪問,尋找解決方法,因爲沒有日期類型。
有什麼想法?
我需要每週顯示不同的用戶。我有一個日期訪問列和一個用戶ID,它是一個有10億行的大表。 我可以將CSV的日期列更改爲年,月,日的列。但是如何從查詢中推斷出這一週。 我可以從CSV中計算一週,但這是一個很大的流程步驟。在bigquery中使用周和年數
我還需要顯示有多少不同用戶日復一日地訪問,尋找解決方法,因爲沒有日期類型。
有什麼想法?
如果您將日期作爲時間戳記(即自紀元開始的微秒數),則可以使用UTC_USEC_TO_DAY/UTC_USEC_TO_WEEK函數。或者,如果您有一個iso格式的日期字符串(例如「2012/03/13 19:00:06 -0700」),則可以調用PARSE_UTC_USEC將該字符串轉換爲時間戳,然後使用它獲取周或日。
要查看示例,請嘗試:
SELECT LEFT((format_utc_usec(day)),10) as day, cnt
FROM (
SELECT day, count(*) as cnt
FROM (
SELECT UTC_USEC_TO_DAY(PARSE_UTC_USEC(created_at)) as day
FROM [publicdata:samples.github_timeline])
GROUP BY day
ORDER BY cnt DESC)
要顯示星期,只是改變UTC_USEC_TO_DAY(...)
到UTC_USEC_TO_WEEK(..., 0)
(0末是指示一週開始於星期日)。有關更多信息,請參閱https://developers.google.com/bigquery/docs/query-reference上述功能的文檔。
要獲得的年數星期:
SELECT STRFTIME_UTC_USEC(TIMESTAMP('2015-5-19'), '%W')
20
感謝了很多,唯一的一點是對大數據集上的查詢,業績,其中太慢比較還加入了「周」列源(通過改變大CSV)和加載到bigquery。 – user1516770
要獲得年份的編號:SELECT STRFTIME_UTC_USEC(NOW(),「%W」); (另見答案) –