我有兩個表A和B.兩個表具有相同的列名。我想合併這兩個表並將其加載到表C.表C還具有與A和B相同的列名稱和時間戳記中的另一列(用於捕獲合併時間)。我不想在表C中有重複項。我嘗試使用union,但得到重複值,因爲Timestamp數據類型中的表C中的一列。在兩個表中都有unix_timestamp()函數
例如,下面是我的示例查詢
insert overwrite table TableC
select field1,field2, unix_timestamp() as field3 from table_A
UNION
select field1,field2, unix_timestamp() as field3 from table_B
兩個UNIX_TIMESTAMP()函數返回不同的時間戳(只是毫秒差)和我正在因爲時間戳的重複數據。
是否有另一種方式來獲得相同的時間戳兩個功能,而工會?
您可以在時間戳字段中插入NULL,然後執行:更新表C設置字段3 = UNIX_TIMESTAMP(),其中場3是你的建議空 –
@GiacomoDegliEsposti感謝。我自己找到了解決方法。我試着像下面,它的工作。 '插入覆蓋表表C 選擇T1.field1,T1.field2,UNIX_TIMESTAMP()作爲場3 從 (從TABLE_A UNION選擇場,場2 選擇場1,從表-B域2)AS T1' –