以 yyyymmdd 格式动态调用 "Previous Month" 和 "Current Month" 的 Bigquery Date 语法是什么?
What is the Bigquery Date syntax to call "Previous Month" and "Current Month" in yyyymmdd format dynamically?
如何动态调用 yyyymmdd 格式的“上个月”和“本月”,而无需在查询中明确提及,如下所述
WHERE _TABLE_SUFFIX BETWEEN '2022[PREVIOUSMONTH]01' AND '2022[CURRENTMONTH]07' 采用 yyyymmdd 格式
WHERE _TABLE_SUFFIX 在“20220201”和“20220307”之间,yyyymmdd 格式
在下面的查询中,如何动态调用 [PREVIOUSMONTH] AND [CURRENTMONTH]in yyyymmdd 格式而不在查询中明确提及 '20220201' AND '20220307'
select
stream_id,app_info.id,app_info.version,
event_date,event_name,
param1.value.string_value as category,
param2.value.string_value as action,
param3.value.string_value as label,
count(1) as totalevent,count( distinct user_pseudo_id ) as uniqueusers
From `abc_150838411.events_*`,
UNNEST(event_params) as param1,
UNNEST(event_params) as param2,
UNNEST(event_params) as param3
WHERE _TABLE_SUFFIX BETWEEN '20220201' AND '20220307'
and param1.key='category'
and param2.key='action'
and param3.key='label'
group by 1, 2, 3, 4, 5,6,7,8
order by totalevent desc
请注意:
需要以 yyyymmdd 格式填充月份语法
在“20220201”和“20220307”之间 _TABLE_SUFFIX
在“2022[PopulatePreviousMonthUsingMonthSyntax]01”和“2022[PopulateCurrnetMonthSyntax]07”之间_TABLE_SUFFIX
请问。帮忙谢谢
您想:
- 更改日期格式 =
FORMAT_DATE
当前月份的 - = 截断
DATE_TRUNC
CURRENT_DATE
的 MONTH
,
- 或上个月的 = 相同但截断了 1 个月前
CURRENT_DATE
的 MONTH
:
SELECT
FORMAT_DATE("%Y%m%d",DATE_TRUNC(CURRENT_DATE(),MONTH)) AS current_month,
FORMAT_DATE("%Y%m%d",DATE_TRUNC( DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH),MONTH)) AS previous_month
这给出:
考虑捷径
SELECT
FORMAT_DATE("%Y%m01", CURRENT_DATE()) AS current_month,
FORMAT_DATE("%Y%m01", DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS previous_month
有输出
根据您的要求,考虑以下查询,其中 date
和 year
是硬编码的,而 month
是动态的。我已经测试了查询,它在提供的时间范围内给出了结果。该查询基于@Mikhail 的回答和您的 .
SELECT
*
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE("2022%m07", DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))
AND
FORMAT_DATE("2022%m01", CURRENT_DATE())
LIMIT
10;
如何动态调用 yyyymmdd 格式的“上个月”和“本月”,而无需在查询中明确提及,如下所述
WHERE _TABLE_SUFFIX BETWEEN '2022[PREVIOUSMONTH]01' AND '2022[CURRENTMONTH]07' 采用 yyyymmdd 格式
WHERE _TABLE_SUFFIX 在“20220201”和“20220307”之间,yyyymmdd 格式
在下面的查询中,如何动态调用 [PREVIOUSMONTH] AND [CURRENTMONTH]in yyyymmdd 格式而不在查询中明确提及 '20220201' AND '20220307'
select
stream_id,app_info.id,app_info.version,
event_date,event_name,
param1.value.string_value as category,
param2.value.string_value as action,
param3.value.string_value as label,
count(1) as totalevent,count( distinct user_pseudo_id ) as uniqueusers
From `abc_150838411.events_*`,
UNNEST(event_params) as param1,
UNNEST(event_params) as param2,
UNNEST(event_params) as param3
WHERE _TABLE_SUFFIX BETWEEN '20220201' AND '20220307'
and param1.key='category'
and param2.key='action'
and param3.key='label'
group by 1, 2, 3, 4, 5,6,7,8
order by totalevent desc
请注意:
需要以 yyyymmdd 格式填充月份语法
在“20220201”和“20220307”之间 _TABLE_SUFFIX
在“2022[PopulatePreviousMonthUsingMonthSyntax]01”和“2022[PopulateCurrnetMonthSyntax]07”之间_TABLE_SUFFIX
请问。帮忙谢谢
您想:
- 更改日期格式 =
FORMAT_DATE
当前月份的 - = 截断
DATE_TRUNC
CURRENT_DATE
的MONTH
, - 或上个月的 = 相同但截断了 1 个月前
CURRENT_DATE
的MONTH
:
SELECT
FORMAT_DATE("%Y%m%d",DATE_TRUNC(CURRENT_DATE(),MONTH)) AS current_month,
FORMAT_DATE("%Y%m%d",DATE_TRUNC( DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH),MONTH)) AS previous_month
这给出:
考虑捷径
SELECT
FORMAT_DATE("%Y%m01", CURRENT_DATE()) AS current_month,
FORMAT_DATE("%Y%m01", DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS previous_month
有输出
根据您的要求,考虑以下查询,其中 date
和 year
是硬编码的,而 month
是动态的。我已经测试了查询,它在提供的时间范围内给出了结果。该查询基于@Mikhail 的回答和您的
SELECT
*
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE("2022%m07", DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))
AND
FORMAT_DATE("2022%m01", CURRENT_DATE())
LIMIT
10;