2014-09-15 4 views
1

BigQuery에 버그가 있다는 것을 알고 있습니다. 그러나 문제 해결을위한 최선의 방법을 확인하기 위해 몇 가지 아이디어를 듣게되어 기쁩니다.BigQuery - 타임 스탬프 버그가있는 통합

select * 
from 

(select CURRENT_TIMESTAMP() as dwh_update_date) a 
)aa 
, 
(select CURRENT_TIMESTAMP() as dwh_update_date) b 

연합 (EU)이 작동하지 않습니다 (하지만 내 쿼리가 이런 식으로해야합니다) :

연합 작동

select * 
from 

(select a.dwh_update_date as dwh_update_date 
from (select CURRENT_TIMESTAMP() as dwh_update_date) a 
)aa 
, 
(select CURRENT_TIMESTAMP() as dwh_update_date) b 

오류 메시지 :

필드 '가. dwh_update_date.usec '을 찾을 수 없습니다.

답변

0

"a." 접두사. 하위 쿼리는 매우 복잡해 보입니다. 왜이 방법을 사용해야합니까?

SELECT * 
FROM (
    SELECT dwh_update_date AS dwh_update_date 
    FROM (
    SELECT CURRENT_TIMESTAMP() AS dwh_update_date 
) a 
)aa, 
(
    SELECT CURRENT_TIMESTAMP() AS dwh_update_date 
) b 
+0

당신 때문에! :) 타임 스탬프 입력란에 게시 된 쿼리를 사용할 때 큰 문제에 직면했습니다. SELECT * FROM (SELECT * FROM [oldtable] WHERE ID NOT IN (SELECT ID FROM [newtable])) (나는 실행할 때이 ods_dev.dwh_dim_hours )로부터 ( 선택 dwh_update_date에서 dwh_update_date 를 선택 –

+0

) newtable] FROM SELECT * , (CURRENT_TIMESTAMP (선택) dwh_update_date 등)을 난 오류를 얻고 b를 : Union 결과가 모호합니다. [dwh_update_date.usec]은 모호하며 여러 필드의 별칭입니다. 별칭 필드 : 내가 그것을 작동 타임 스탬프를 다시 문자열로 변환 할 경우 dwh_update_date.usec, (마이크로 초), 그것은 단지, 타임 스탬프 무슨 일이 생긴 것 , –

+1

이 CURRENT_TIMESTAMP를 대체 할 시도, B (dwh_update_date로 CURRENT_TIMESTAMP()를 선택)() 필드에서 하위 쿼리 중 하나를 선택하면 버그가 다시 나타납니다. –

1

이 문제는 향후에 해결 될 임시 버그로 Google에서 확인했습니다. 이제 가장 좋은 해결책은 유니온을 수행해야하는 경우 타임 스탬프를 문자열로 변경하고 유니온 이후의 타임 스탬프로 다시 캐스팅하는 것입니다.

+0

timestamp_to_usec() 및 usec_to_timestamp()를 사용하여 타임 스탬프를 마이크로 초로 변환하는 것이 좋습니다. 나를 잘 처리 할 수 ​​있습니다. –