У меня есть 3 поля: имя пользователя, tracking_id, отметка времени. У одного пользователя будет несколько строк (у некоторых больше, у некоторых меньше) с разными идентификаторами отслеживания и временными метками для каждого действия, которое он предпринял на моем веб-сайте. Я хочу сгруппировать по имени пользователя и получить идентификаторы отслеживания действий этого пользователя с 10-го по 70-е. Я использую стандартный SQL на BigQuery.
Первая проблема, я не могу найти синтаксис для доступа к диапазону в STRUCT (например, только одна строка или использование предела для получения первых / последних 70 строк). Затем я могу получить изображение после управления доступом к диапазону, может быть проблема с индексом, выходящим за пределы, поскольку у некоторых пользователей может не быть 70 или более действий.
SELECT
username,
ARRAY_AGG(STRUCT(tracking_id,
timestamp)
ORDER BY
timestamp
)[OFFSET (9 to 69)] #??????
FROM
table
Результатом должна быть таблица с теми же 3 полями: username, tracking_id, timestamp, но вместо того, чтобы содержать ВСЕ строки пользователя, она должна содержать каждого пользователя только с 10-й по 70-ю строку.