2017-03-03 1 views
0

는이 쿼리를 좀 도와 주 시겠어요 : 이해하지 않는 TIMESTAMP_MILLIS이BigQuery에 문제가

SELECT DATE, 
      MAX(CASE WHEN customDimensions.index = 1 THEN customDimensions.value END) AS CUSTOMDIMENSIONS_VALUE, 
      visitNumber, 
      fullvisitorid, 
      device.deviceCategory, 
      hits.page.pagePath, 
      IFNULL(hits.page.pagePathLevel2, '') AS HITS_PAGE_PAGEPATHLEVEL2,    
      IFNULL(hits.page.pagePathLevel3, '') AS HITS_PAGE_PAGEPATHLEVEL3, 
      hits.page.pageTitle, 
      TIMESTAMP_SECONDS(visitStartTime) AS visitStart, 
      TIMESTAMP_MILLIS(1000 * visitStartTime + hits.time) AS hitStart, 
      hits.hitNumber, 
      hits.hour, 
      hits.minute, 
      hits.isEntrance, 
      hits.isExit, 
      CONCAT(fullvisitorid, STRING(visitid)) AS sessionid 
    FROM (FLATTEN([Table], customDimensions.value)) 
    WHERE hits.page.hostname CONTAINS 'X'' AND customDimensions.value != "null" AND hits.type = 'PAGE' AND (customDimensions.index = 1 OR hits.customDimensions.index = 11) 
    GROUP EACH BY DATE, visitStartTime, fullVisitorId, visitNumber, device.deviceCategory, hits.page.pagePath, hits.page.pageTitle, hits.hitNumber, hits.time, hits.hour, hits.minute, hits.isEntrance, hits.isExit 
    LIMIT 100000 

답변

1

를 작동하지 않는 이유 TIMESTAMP_MILLIS가 작동하지 않는 이유를 이해하지 않습니다. 당신이 나에게

쿼리의 문제를 도와 주 시겠어요하면 같은 쿼리에서 BigQuery를 Legacy SQLStandard SQL의 혼합물을 사용하는 것입니다. 예를 들어

: 조회의 일부가 아래
은 - 당신이 생각 (레거시 SQL에서 유사한 기능을 찾을 수 있습니다 - 기능 만 표준 SQL로 지원되는 기존 SQL 기능

FROM (FLATTEN([Table], customDimensions.value)) 
TIMESTAMP_MILLIS 반면

TIMESTAMP_SECONDS입니다 예 : MSEC_TO_TIMESTAMPSEC_TO_TIMESTAMP())

하나 또는 다른 것을 사용해야합니다. BigQuery 팀에서 Standard SQL을 사용하는 것이 좋습니다.

+0

감사합니다. @Mikhail Berlyant님께 고맙습니다. – sPujade