I have a query that I am running against my dataset in BigQuery. The data is partly the google analytics data for a particular website. I want to be able to nest the string values for my key_web, to simplify the output and get the option to go deeper in detail if I want to. The prd.key_web is of type string. I have no idea how to do it ! It is a one to many relationship between the user who can have multiple rows in the table. All fields are of type string except for prd.dat_log.
A simpler query would be:
x
select
prd.key_web
, dat_log AS date
, prd.nrb_fp AS nrb_fp
, prd.tps_fp AS tps_fp
, prd.univ
, prd.suniv
, prd.fam
, prd.sfam
from product as prd
Advertisement
Answer
Simple ARRAY_AGG
function can create nested array in aggregation
select
prd.key_web,
ARRAY_AGG(STRUCT(
dat_log,
prd.nrb_fp,
prd.tps_fp,
prd.univ,
prd.suniv,
prd.fam,
prd.sfam)) AS details
from
product as prd
group by
key_web