我有一个数组,其中有2个字段(产品名称和产品持续时间),并希望将它们组合成一行。
通过使用SPLIT(由于transactionID是唯一的并且需要由此拆分,我需要做的到这一步),它自动为我创建了一个看起来像这样的数组:
Transaction ID ProductName ProductDuration
1234 Ents 14D
Movies 7D
Sports NONE
---------------------------------------------------------
5678 Movies 7D
Kids 14D
这是我用来进入当前阶段的代码:
SELECT
TransactionID
,SPLIT ( c_ProductName, "|") as ProductName
,SPLIT ( c_ProductTrialDuration , "|") as ProductDuration
理想情况下,如以下示例所示,我想要类似
Transaction ID ProductName_Duration
---------------------------------------------------------
1234 Ents-14D
Movies-7D
Sports-NONE
---------------------------------------------------------
5678 Movies-7D
Kids-14D
我已经尝试了ARRAY_CONCAT,但这只是在下面的产品名称中添加了持续时间(有点像联合)。
如果有人知道如何解决这个问题,那就太好了!!
谢谢
答案 0 :(得分:3)
以下BigQuery标准SQL示例
Sub CreateComboBox1()
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, Left:=50, Top:=80, Width:=100, _
Height:=15)
With .Object
.AddItem "Date"
.AddItem "Player"
.AddItem "Team"
.AddItem "Goals"
.AddItem "Number"
End With
End With
End Sub
有结果
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1234 id, ['Ents','Movies','Sports'] ProductName, ['14D','7D','NONE'] ProductDuration UNION ALL
SELECT 5678, ['Movies','Kids'], ['7D','14D']
)
SELECT id,
ARRAY(SELECT CONCAT(name, '-', duration)
FROM UNNEST(ProductName) name WITH OFFSET
JOIN UNNEST(ProductDuration) duration WITH OFFSET
USING(OFFSET)
) ProductName_Duration
FROM `project.dataset.table`