[英]BigQuery: Extracting month from date (STRING Type) in SQL
I've connected my GA account to Bigquery.我已将我的 GA 帐户连接到 Bigquery。
Now, I'm trying to group_by month all visits.现在,我正在尝试按月对所有访问进行分组。
But I'm getting:但我得到:
EXTRACT does not support arguments of type: STRING at [2:3]
Because my date column is of type STRING.因为我的日期列是 STRING 类型。
SELECT
EXTRACT(DATE_TIME_PART FROM date) AS Month, SUM(totals.visits) as totalVisits,
FROM
`xxxx.yyyy.ga_sessions_20*`
GROUP BY date
I've tried to CAST it to date:迄今为止,我已经尝试将其 CAST:
SELECT
EXTRACT(DATE_TIME_PART FROM CAST(date AS date)) AS Month, SUM(totals.visits) as totalVisits,
FROM
`xxx-yyyy.ga_sessions_20*`
GROUP BY date
Getting:获得:
A valid date part name is required but found DATE_TIME_PART at [2:11] Learn More about BigQuery SQL Functions.
需要有效的日期部分名称,但在 [2:11] 处找到了 DATE_TIME_PART 了解有关 BigQuery SQL 函数的更多信息。
What does it mean?这是什么意思?
Expected result:预期结果:
| year | month | total_visits |
|:----:|----------|--------------|
| 2019 | january | 162626 |
| 2019 | february | 599562 |
UPDATE 1:更新1:
SELECT
FORMAT_DATE(CAST(date AS date), '%B'), SUM(totals.visits) as totalVisits,
FROM
`xxx.yyyy.ga_sessions_20*`
GROUP BY date
Gives error:给出错误:
No matching signature for function FORMAT_DATE for argument types: DATE, STRING. Supported signature: FORMAT_DATE(STRING, DATE) at [2:2]
Below is for BigQuery Standard SQL下面是 BigQuery 标准 SQL
#standardSQL
SELECT
FORMAT_DATE('%Y', PARSE_DATE('%Y%m%d', date)) AS year,
FORMAT_DATE('%B', PARSE_DATE('%Y%m%d', date)) AS month,
SUM(totals.visits) AS totalVisits,
FROM
`xxx.yyyy.ga_sessions_20*`
GROUP BY year, month
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.