SELECT
STRFTIME_UTC_USEC(TimeStamp,"%Y-%m-%d %H:%M:%S") AS TimeStamp,
Value.provided,
__key__.app AS ProjectID,
REGEXP_EXTRACT(__key__.path, r'"hostname"[, ]*"(.*?)"') AS hostname,
REGEXP_EXTRACT(__key__.path, r'"machine"[, ]*"(.*?)"') AS machine,
REGEXP_EXTRACT(__key__.path, r'"variable"[, ]*"(.*?)"') AS variable,
IF(value.provided = 'integer', CAST(value.integer AS STRING),
CAST(value.boolean AS STRING)) AS value
FROM
[spark-test-project-152415:spark_machine_learning.spark_12272016]
ORDER BY
TimeStamp
LIMIT 100000
以上查詢將提取數據集,如附圖所示。我需要將一個變量列分成多個列,其中包含值。我認爲它必須使用子查詢來完成。我怎樣才能開始呢?將列拆分爲多列
預期輸出:
與PIVOT查詢
SELECT * FROM (SELECT #Timestamp, STRFTIME_UTC_USEC(TimeStamp,"%Y-%m-%d %H:%M:%S") AS [TimeStamp], Value.provided, __key__.app AS ProjectID, REGEXP_EXTRACT(__key__.path, r'"hostname"[, ]*"(.*?)"') AS [hostname], REGEXP_EXTRACT(__key__.path, r'"machine"[, ]*"(.*?)"') AS [machine], REGEXP_EXTRACT(__key__.path, r'"variable"[, ]*"(.*?)"') AS [variable], IF(value.provided = 'integer', CAST(value.integer AS STRING), CAST(value.boolean AS STRING)) AS [value] FROM [spark-test-project-152415:spark_machine_learning.spark_12272016] ORDER BY TimeStamp) AS SourceTable PIVOT ([value] FOR [variable] IN ([Counter_Strokes_No_Reset], [Press_State_Code], [Press_Operator_1], [Press_Stop_Time_Limit], [Counter_Good_Parts_No_Reset], [Press_Error_Reason_Code], [Counter_Scrap_No_Reset], [Production_Tool_Number], [Press_Stop_Time_Actual], [Production_Good_Parts_Preset], [Press_Shaft_Speed], [Production_Part_Number], [Press_Total_Tonnage], [Production_Job_Number])) AS PivotTable
從我瞭解的圖像顯示您的電流輸出。你能提供預期產出的例子! –
https://i.stack.imgur.com/Xa1hg.png –
@Mikhail,我想要得到像上面鏈接 –