... INNER JOIN ... WHERE deleted_at IS NOT NULL AND ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ) SELECT COUNT(*) OVER ... AS daily_count, IF(week = day, COUNT(*) OVER ..., NULL) AS weekly_count, IF(month = day, COUNT(*) OVER ..., NULL) AS monthly_count, COUNT(DISTINCT user_id) OVER ... AS daily_users, IF(week = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS weekly_users, IF(month = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS monthly_users FROM people_posts INNER JOIN ...
... INNER JOIN ... WHERE deleted_at IS NOT NULL AND ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ) SELECT COUNT(*) OVER ... AS daily_count, IF(week = day, COUNT(*) OVER ..., NULL) AS weekly_count, IF(month = day, COUNT(*) OVER ..., NULL) AS monthly_count, COUNT(DISTINCT user_id) OVER ... AS daily_users, IF(week = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS weekly_users, IF(month = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS monthly_users FROM people_posts INNER JOIN ... w ຊʹϢʔβͷߘʹߜΓࠐΊ͍ͯ Δ͔Θ͔Βͳ͍ w ίϐϖࠈ w ͜ͷ໊લʹΑΓࣾͰղऍ͕όϥ όϥʹͳͬͯ͠·͏ w ྫ w Ϣʔβ͕ϑΟʔυʹߘͨ͠هࣄ w QFPQMFʹදࣔ͞ΕΔهࣄ
... INNER JOIN ... WHERE deleted_at IS NOT NULL AND ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ) SELECT COUNT(*) OVER ... AS daily_count, IF(week = day, COUNT(*) OVER ..., NULL) AS weekly_count, IF(month = day, COUNT(*) OVER ..., NULL) AS monthly_count, COUNT(DISTINCT user_id) OVER ... AS daily_users, IF(week = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS weekly_users, IF(month = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS monthly_users FROM people_posts INNER JOIN ... w ຊʹϢʔβͷߘʹߜΓࠐΊ͍ͯ Δ͔Θ͔Βͳ͍ w ίϐϖࠈ w ͜ͷ໊લʹΑΓࣾͰղऍ͕όϥ όϥʹͳͬͯ͠·͏ w ྫ w Ϣʔβ͕ϑΟʔυʹߘͨ͠هࣄ w QFPQMFʹදࣔ͞ΕΔهࣄ ϨϏϡʔΛཔΊΔΈ WJFXͰΫΤϦͷ࠶ར༻ੑΛߴΊΔ ΫΤϦ໊ΛࣾͰҰҙʹͳΔΑ͏ʹ
... INNER JOIN ... WHERE deleted_at IS NOT NULL AND ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ) SELECT COUNT(*) OVER ... AS daily_count, IF(week = day, COUNT(*) OVER ..., NULL) AS weekly_count, IF(month = day, COUNT(*) OVER ..., NULL) AS monthly_count, COUNT(DISTINCT user_id) OVER ... AS daily_users, IF(week = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS weekly_users, IF(month = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS monthly_users FROM people_posts INNER JOIN ... #*πʔϧͷதͷΈʹ͜ͷΫΤϦ ͕͋ΔͷͰɺ w σʔλͷมߋ͕ࢥΘͳ͍ͱ͜ Ζ·ͰӨڹͯ͠͠·͏ w σʔλʹؔ͢Δ͕ࣝ·Β ͳ͍
... INNER JOIN ... WHERE deleted_at IS NOT NULL AND ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ), ... AS ( SELECT ... FROM ... INNER JOIN ... WHERE ... ) SELECT COUNT(*) OVER ... AS daily_count, IF(week = day, COUNT(*) OVER ..., NULL) AS weekly_count, IF(month = day, COUNT(*) OVER ..., NULL) AS monthly_count, COUNT(DISTINCT user_id) OVER ... AS daily_users, IF(week = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS weekly_users, IF(month = day, COUNT(DISTINCT user_id) OVER ..., NULL) AS monthly_users FROM people_posts INNER JOIN ... #*πʔϧͷதͷΈʹ͜ͷΫΤϦ ͕͋ΔͷͰɺ w σʔλͷมߋ͕ࢥΘͳ͍ͱ͜ Ζ·ͰӨڹͯ͠͠·͏ w σʔλʹؔ͢Δ͕ࣝ·Β ͳ͍ ΫΤϦ͕ݕࡧҰཡͰ͖Δ ΫΤϦΛࢀর͢Δ͚ͩʹ͢Δ
y FLOAT64) RETURNS FLOAT64 LANGUAGE js AS """ return x*y; """; https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions?hl=ja VEGEBUBTFUUFTU@VEGTRM w WJFXͰ6%'͕͑ͳ͍ͨΊ w ࣾͷศར6%'ΛΊΔͨΊ
STRING) RETURNS STRING LANGUAGE js AS """ return ` SELECT COUNT(1) FROM ${tablename} `; """; SELECT CONCAT(name, "_count") AS name, render_query(tablename) AS query, FROM UNNEST(ARRAY<STRUCT<name string, tablename string>>[ STRUCT( "311_request" AS name, """`bigquery-public-data.austin_311.311_request`""" AS tablename ) ]) SELECT COUNT(1) FROM `bigquery-public-data.austin_311.311_request` UFNQMBUFEBUBTFUDPVOUTTRM FYBNQMFEBUBTFU@SFRVFTU@DPVOUTRM