大查询:将旧sql请求转换为标准sql请求?

大查询:将旧sql请求转换为标准sql请求?,sql,error-handling,google-bigquery,bigquery-standard-sql,Sql,Error Handling,Google Bigquery,Bigquery Standard Sql,这是我的问题:如何将其转换为标准SQL?非常感谢你的帮助。我不知道该怎么做 SELECT date, max(case when customDimensions.index = 1 then customDimensions.value end) AS CUSTOMDIMENSIONS_VALUE, visitNumber, fullvisitorid, visitStartTime, SEC_TO_TIMESTAMP(visitStartTime)

这是我的问题:如何将其转换为标准SQL?非常感谢你的帮助。我不知道该怎么做

SELECT date,
    max(case when customDimensions.index = 1 then customDimensions.value end) AS CUSTOMDIMENSIONS_VALUE, 
    visitNumber,
    fullvisitorid,
    visitStartTime,
    SEC_TO_TIMESTAMP(visitStartTime) AS humain,
    TIME (visitStartTime+3600 ) AS Paris_timezone,
    hits.hour,
    hits.minute,
    CONCAT(fullvisitorid, STRING(visitid)) AS sessionid,
    max(CASE WHEN hits.customDimensions.index = 11 THEN hits.customDimensions.value END) AS localproductname,
    device.deviceCategory,
    hits.page.pagePath,
    IFNULL(hits.page.pagePathLevel2, '') AS HITS_PAGE_PAGEPATHLEVEL2,
    IFNULL(hits.page.pagePathLevel3, '') AS HITS_PAGE_PAGEPATHLEVEL3,
    MAX(CASE WHEN hits.customDimensions.index = 14 THEN hits.customDimensions.value END) AS assetpurpose,
    hits.hitNumber,
FROM (FLATTEN([85801771.ga_sessions_20161025], customDimensions.value )),
  (FLATTEN([85801771.ga_sessions_20161026], customDimensions.value )),
WHERE customDimensions.value != "null" AND customDimensions.value = "968a9587-0614-4155-9597-bf17aef42125" AND hits.type = 'PAGE' AND (customDimensions.index = 1 OR hits.customDimensions.index = 11 OR hits.customDimensions.index = 14
    OR hits.customDimensions.index = 27 ) AND hits.page.hostname CONTAINS 'website.fr' AND hits.type = 'PAGE'
GROUP EACH BY DATE, visitStartTime, humain, Paris_timezone, hits.hour, hits.minute, fullVisitorId, sessionid, visitNumber, device.deviceCategory, hits.page.pagePath, HITS_PAGE_PAGEPATHLEVEL2, HITS_PAGE_PAGEPATHLEVEL3, hits.hitNumber,
LIMIT 100000 
我尝试将其转换为标准sql,但出现以下错误:

语法错误:意外的浮点文字85801771

也许我的问题中还有其他错误

标准SQL:

SELECT date,
    max(case when customDimensions.index = 1 then customDimensions.value end) AS CUSTOMDIMENSIONS_VALUE, 
    visitNumber,
    fullvisitorid,
    visitStartTime,
    SEC_TO_TIMESTAMP(visitStartTime) AS humain,
    TIME (visitStartTime+3600 ) AS Paris_timezone,
    hits.hour,
    hits.minute,
    CONCAT(fullvisitorid, STRING(visitid)) AS sessionid,
    max(CASE WHEN hits.customDimensions.index = 11 THEN hits.customDimensions.value END) AS localproductname,
    device.deviceCategory,
    hits.page.pagePath,
    IFNULL(hits.page.pagePathLevel2, '') AS HITS_PAGE_PAGEPATHLEVEL2,
    IFNULL(hits.page.pagePathLevel3, '') AS HITS_PAGE_PAGEPATHLEVEL3,
    MAX(CASE WHEN hits.customDimensions.index = 14 THEN hits.customDimensions.value END) AS assetpurpose,
    hits.hitNumber,
FROM (FLATTEN([85801771.ga_sessions_20161025], customDimensions.value )),
  (FLATTEN([85801771.ga_sessions_20161026], customDimensions.value )),
WHERE customDimensions.value != "null" AND customDimensions.value = "968a9587-0614-4155-9597-bf17aef42125" AND hits.type = 'PAGE' AND (customDimensions.index = 1 OR hits.customDimensions.index = 11 OR hits.customDimensions.index = 14
    OR hits.customDimensions.index = 27 ) AND hits.page.hostname CONTAINS 'website.fr' AND hits.type = 'PAGE'
GROUP BY DATE, visitStartTime, humain, Paris_timezone, hits.hour, hits.minute, fullVisitorId, sessionid, visitNumber, device.deviceCategory, hits.page.pagePath, HITS_PAGE_PAGEPATHLEVEL2, HITS_PAGE_PAGEPATHLEVEL3, hits.hitNumber,
LIMIT 100000  

从长远来看,讨论遗留SQL和标准SQL之间的一些差异并向您介绍文档可能对您更有用,而不是为您重写查询。逐步完成查询的各个部分:

秒到秒的时间戳等同于时间戳秒。 以INT64(单位为微秒)作为输入的时间相当于时间戳“%H:%M:%S”、时间戳的格式。 没有字符串函数,但可以将CastXPR用作字符串。 扁平化不是标准SQL中的函数。相反,执行一个命令。 CONTAINS不是标准SQL中的函数,但您可以使用“%website.fr%”之类的函数。
中介绍了其中的许多差异,如果您想了解如何将函数或运算符从传统SQL转换为标准SQL,这是一个很好的起点。您可以阅读我在上面的中提到的函数。

与其为您重写查询,从长远来看,讨论遗留SQL和标准SQL之间的一些差异并向您介绍文档可能会对您更有用。逐步完成查询的各个部分:

秒到秒的时间戳等同于时间戳秒。 以INT64(单位为微秒)作为输入的时间相当于时间戳“%H:%M:%S”、时间戳的格式。 没有字符串函数,但可以将CastXPR用作字符串。 扁平化不是标准SQL中的函数。相反,执行一个命令。 CONTAINS不是标准SQL中的函数,但您可以使用“%website.fr%”之类的函数。
中介绍了其中的许多差异,如果您想了解如何将函数或运算符从传统SQL转换为标准SQL,这是一个很好的起点。您可以阅读我在中提到的函数。

如果我尝试使用此标准SQL SELECT date,当customDimensions.index=1时为maxcase,然后customDimensions.value结束为customDimensions\u value,visitNumber,fullvisitorid,visitStartTime,SEC\u TO\u TimestampVisitsStartTime为humain,TIME VisitsStartTime+3600为Paris\u时区,hits.hour、hits.minute、CONCATfullvisitorid、STRINGvisitid作为sessionid、maxcase WHEN hits.customDimensions.index=11然后hits.customDimensions.value结束为localproductname、device.deviceCategory、hits.page.pagePath、IFNULLhits.page.pagePathLevel2、IFNULLhits\pagePathLevel2、IFNULLhits.page.pagePathLevel3、,作为HITS_PAGE_PAGEPATHLEVEL3,当HITS.customDimensions.index=14时的MAXCASE,然后HITS.customDimensions.value作为assetpurpose结束,HITS.hitNumberFROM 85801771.ga_sessions,其中_TABLE_后缀在'20161025'和'20161026'customDimensions.value!=null和customDimensions.value=968a9587-0614-4155-9597-bf17aef42125和hits.type='PAGE'和customDimensions.index=1或hits.customDimensions.index=11或hits.customDimensions.index=14或hits.customDimensions.index=27和hits.PAGE.hostname包含“XXX.fr”和hits.type='PAGE”按日期分组,visitStartTime、humain、Paris_时区、hits.hour、hits.minute、fullVisitorId、sessionid、visitNumber、device.deviceCategory、hits.page.pagePath、hits_page_PAGEPATHLEVEL2、hits_page_PAGEPATHLEVEL3、hits.hitNumber、,限制100000我建议您编辑您的问题并添加该错误,以便任何有足够知识的人都可以帮助您。如果我尝试此标准SQL SELECT date,maxcase when customDimensions.index=1,则customDimensions.value结束为customDimensions\u value,visitNumber,fullvisitorid,visitStartTime,SEC_to_TIMESTAMPvisitStartTime作为humain,时间访问开始时间+3600作为巴黎时区,hits.hour,hits.minute,CONCATfullvisitorid,STRINGvisitid作为sessionid,maxcase WHEN hits.customDimensions.index=11然后hits.customDimensions.value结束作为localproductname,device.deviceCategory,hits.page.pagePath,IFNULLhits.page.pagePathLevel2,作为hits\page\u pagePathLevel2,如果nullhits.page.pagePathLevel3作为HITS\u page\u pagePathLevel3,当HITS.customDimensions.index=14时最大,然后HITS.customDimensions.value作为assetpurpose结束,HITS.hitNumberFROM 85801771.ga\u sessions,其中_TABLE\u后缀介于'20161025'和'20161026'customDimensions.value!=null和customDimensions.value=968a9587-0614-4155-9597-bf17aef42125和hits.type='PAGE'和customDimensions.index=1或hits.customDimensions.index=11或hits.customDimensions.index=14或hits.customDimensions.index=27和hits.PAGE.hostname包含“XXX.fr”和hits.type='PAGE”按日期分组,访问开始时间、休曼、巴黎时区、hits.hour、hits.min
ute、fullVisitorId、sessionid、visitNumber、device.deviceCategory、hits.page.pagePath、hits_page_PAGEPATHLEVEL2、hits_page_PAGEPATHLEVEL3、hits.hitNumber、LIMIT 100000我建议您编辑问题并添加错误,以便任何具有足够知识的人都可以帮助您。感谢瓦迪姆的善意帮助。我将特洛伊也使用这个基础。塞巴斯蒂安克斯·瓦迪姆感谢你的帮助。我将特洛伊也使用这个基础。塞巴斯蒂安