gpt4 book ai didi

mysql - 我们如何在 bigquery 中使用标准 SQL 更改列的数据类型?

转载 作者:搜寻专家 更新时间:2023-10-30 23:27:29 24 4
gpt4 key购买 nike

我知道这可能很愚蠢,但旧案例都不适合我。对于“CAST”方法也不是。

我正在尝试运行以下查询,但出现以下错误:

SELECT
P.date,
P.campaign_id,
P.ad_name,
P.impressions,
P.clicks,
P.spend,
P.NOM_ENSEMBLE,
P.CODE_ENSEMBLE_IMMO,
F.FREQUENTATION_CENTRE
FROM
`project.digital.fb_data` AS P
JOIN
`project.digital.freq_data` AS F
ON
(P.date = F.JOUR AND P.CODE_ENSEMBLE_IMMO=F.CODE_ENSEMBLE_IMMO)

错误:

Error: No matching signature for operator = for argument types: DATE, STRING. Supported signatures: ANY = ANY at [16:4]

最佳答案

以下是 BigQuery 标准 SQL

第一个查询是重现/演示您的问题的简化查询

#standardSQL
WITH `project.digital.fb_data` AS (
SELECT DATE '2019-02-15' `date`, 1 CODE_ENSEMBLE_IMMO
), `project.digital.freq_data` AS (
SELECT '02-15-2019' JOUR, 1 CODE_ENSEMBLE_IMMO, 'zzz' FREQUENTATION_CENTRE
)
SELECT
P.date,
P.CODE_ENSEMBLE_IMMO,
F.FREQUENTATION_CENTRE
FROM `project.digital.fb_data` AS P
JOIN `project.digital.freq_data` AS F
ON P.date = F.JOUR
AND P.CODE_ENSEMBLE_IMMO=F.CODE_ENSEMBLE_IMMO

结果

Error: No matching signature for operator = for argument types: DATE, STRING. Supported signatures: ANY = ANY at [13:4]  

下面的查询演示了如何解决上述问题

#standardSQL
WITH `project.digital.fb_data` AS (
SELECT DATE '2019-02-15' `date`, 1 CODE_ENSEMBLE_IMMO
), `project.digital.freq_data` AS (
SELECT '02-15-2019' JOUR, 1 CODE_ENSEMBLE_IMMO, 'zzz' FREQUENTATION_CENTRE
)
SELECT
P.date,
P.CODE_ENSEMBLE_IMMO,
F.FREQUENTATION_CENTRE
FROM `project.digital.fb_data` AS P
JOIN `project.digital.freq_data` AS F
ON P.date = PARSE_DATE('%m-%d-%Y', F.JOUR)
AND P.CODE_ENSEMBLE_IMMO=F.CODE_ENSEMBLE_IMMO

结果

Row date        CODE_ENSEMBLE_IMMO  FREQUENTATION_CENTRE     
1 2019-02-15 1 zzz

注意:您的 F.JOUR 可以使用与上述示例不同的格式 - 因此请查看 PARSE_DATE如何处理其他函数supported formats

关于mysql - 我们如何在 bigquery 中使用标准 SQL 更改列的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com