Datos de registro de BigQuery sin procesar para instaladores del primer día

Soy bastante nuevo en StandardSQL y quería exportar los datos de registro de Raw BigQuery para los usuarios que se instalaron en una fecha determinada (1 de junio de 2017) con los datos de la sesión de las primeras 3 semanas en y después de la fecha de instalación (D0-D20).

    #StandardSQL
    SELECT user_dim.first_open_timestamp_micros, user_dim.app_info.app_instance_id, event_dim.date, event_dim.name, event_dim.timestamp_micros, event_dim.previous_timestamp_micros
    FROM `your_table_id.app_events_*`
    WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621' AND
    (SELECT user_dim.first_open_timestamp_micros
    FROM UNNEST(user_dim) AS user
    WHERE user.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000);

Solo obtengo el siguiente resultado:"Los valores a los que se hace referencia en UNNEST deben ser matrices. UNNEST contiene expresiones de tipo STRUCT". Mi pregunta inicial fue: ¿Cómo convertiría esto en una matriz para obtener el resultado adecuado?

Actualización después de la respuesta de Mikhail:

La siguiente consulta se ejecutó, pero no proporcionó ningún dato como resultado. Sé que debería haber usuarios que deberían aparecer, porque si hago una vista previa de la tabla real (ver captura de pantalla), veo valores que existen en la tabla que deberían ser parte de la salida (pero no lo es).

#standardSQL
SELECT 
  user_dim.first_open_timestamp_micros, 
  user_dim.app_info.app_instance_id, 
  event.date, event.name, 
  event.timestamp_micros, 
  event.previous_timestamp_micros
FROM `your_table_id.app_events_*`, UNNEST(event_dim) AS event
WHERE _TABLE_SUFFIX BETWEEN '20170601' AND '20170621' 
AND user_dim.first_open_timestamp_micros BETWEEN 1496275200000 AND 1496361600000
LIMIT 10;

Captura de pantalla de la tabla real:

La conversión de las marcas de tiempo muestra que la sesión anterior debería aparecer en el medio de los 2 user_dim.first_open_timestamp_micros-results, pero no ...

1496275200000 Convertido: Suponiendo que esta marca de tiempo esté en milisegundos: GMT: jueves 1 de junio de 2017 12:00:00 AM Su zona horaria: jueves 1 de junio de 2017 2:00:00 GMT + 02: 00 DST

1496353126947000 Convertido: Suponiendo que esta marca de tiempo esté en microsegundos (1 / 1,000,000 de segundos): GMT: jueves 1 de junio de 2017 9: 38: 46.947 PM Su zona horaria: jueves 1 de junio de 2017 11: 38: 46.947 PM GMT + 02: 00 DST

1496361600000 Convertido: Suponiendo que esta marca de tiempo esté en milisegundos: GMT: viernes 2 de junio de 2017 12:00:00 AM Su zona horaria: viernes 2 de junio de 2017 2:00:00 GMT + 02: 00 DST

Pregunta:

Me estoy perdiendo algo, ¿por qué ese valor no se mostraría en la salida?

Respuestas a la pregunta(1)

Su respuesta a la pregunta