Optomise the performance of : I would like to build the following table every day, to store some aggregate data on page performance of a website. However, each days worth of data is over 15 million rows.

What steps can I take to improve performance? I am intending to save them as sharded tables, but I would like to improve further, could I nest the data within each table to improve performance further? What would be the best way to do this?

    SELECT
    device.devicecategory AS device,
    hits_product.productListName AS list_name,
    UPPER(hits_product.productSKU) AS SKU,
    AVG(hits_product.productListPosition) AS avg_plp_position
    
    FROM `mindful-agency-136314.43786551.ga_sessions_20*` AS t
      CROSS JOIN UNNEST(hits) AS hits
      CROSS JOIN UNNEST(hits.product) AS hits_product
    WHERE parse_date('%y%m%d', _table_suffix) between 
    DATE_sub(current_date(), interval 1 day) and
    DATE_sub(current_date(), interval 1 day)

    AND hits_product.productListName != "(not set)"
    GROUP BY 
    device,
    list_name,
    SKU