2

週ごとに異なるユーザーを表示する必要があります。訪問日列とユーザー ID があります。これは 10 億行の大きなテーブルです。日付列を CSV から年、月、日の列に変更できます。しかし、クエリでそれから週を推測するにはどうすればよいですか。CSV から週を計算できますが、これは大きなプロセス ステップです。

また、日付タイプがないため、回避策を探して、毎日何人のユーザーが訪問するかを示す必要があります。

何か案は?

4

2 に答える 2

2

日付をタイムスタンプ (エポックからのマイクロ秒) として持っている場合は、UTC_USEC_TO_DAY/UTC_USEC_TO_WEEK 関数を使用できます。別の方法として、等形式の日付文字列 (例: "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にある上記の関数のドキュメントを参照して ください。

于 2012-10-17T21:53:54.843 に答える