我们的项目中有一些事件记录用户停留在页面中的时间。我们添加一个名为time_ms的event_params.key,其值显示持续时间。如何选择“ time_ms”的总和?
我尝试使用SQL语句,但失败了。
SELECT *
FROM analytics_152426080.events_20190626
WHERE event_name = 'details_viewtime' AND
event_params.key = 'time_ms'
它显示错误消息:
'Cannot access field key on a value with type ARRAY<STRUCT<key STRING, value STRUCT<string_value STRING, int_value INT64, float_value FLOAT64, ...>>> at [7:20]'.
我希望得到'time_ms'的总和,但是我应该先解决这个问题。
答案 0 :(得分:0)
我认为您需要helm install
:
unnest
我不确定实际值在哪里,但是像这样:
SELECT *
FROM analytics_152426080.events_20190626 e CROSS JOIN
UNNEST(event_params) ep
WHERE e.event_name = 'details_viewtime' AND
ep.key = 'time_ms';
假设您要求和的值是一个整数。
这假定value列是某种数字。否则,您需要将其转换为一个。
或者,如果要对每行的值求和:
SELECT SUM(ep.value.int_value)
FROM analytics_152426080.events_20190626 e CROSS JOIN
UNNEST(event_params) ep
WHERE ep.event_name = 'details_viewtime' AND
ep.key = 'time_ms';