如果要删除行怎么办?
使用UNNEST -
错误:无法在类型值上访问字段hitId ARRAY< STRUCT< hitId STRING,isEntrance INT64,isExit INT64,...>>
delete
FROM
xxxx.session_streaming_20161029
WHERE
h.hitId = (
SELECT hitId
FROM xxxx.session_streaming_20161029, UNNEST(hits) as h
WHERE h.transaction.transactionId = '123456')
答案 0 :(得分:0)
如果我理解正确,我认为你真的想要:
delete FROM xxxx.session_streaming_20161029
WHERE EXISTS (
SELECT 1
FROM xxxx.session_streaming_20161029,
UNNEST(hits) as h
WHERE h.transaction.transactionId = '123456');
我们的想法是匹配存在某些事务ID且值为'123456'
的所有行。
编辑:如果目标是使用此事务ID从hits
中删除条目,而不是删除hits
包含事务ID的整个行,则可以使用UPDATE
:< / p>
UPDATE xxxx.session_streaming_20161029
SET hits =
ARRAY(SELECT hit FROM UNNEST(hits)
WHERE transaction.transactionId = '123456');