lib/templates/sql/archived/histogram_generic.sql (73 lines of code) (raw):

{% autoescape off %} with {% for segment in segments %} json_{{segment.name}} as ( SELECT "{{segment.name}}" as segment, mozfun.map.get_key(environment.experiments, "{{slug}}").branch as branch, JSON_EXTRACT({{histogram}}, '$.values') as hist FROM {% if channel == "nightly" %} `moz-fx-data-shared-prod.telemetry.main_nightly` {% else %} `moz-fx-data-shared-prod.telemetry.main` {% endif %} WHERE DATE(submission_timestamp) >= DATE('{{startDate}}') AND DATE(submission_timestamp) <= DATE('{{endDate}}') AND normalized_channel = "{{channel}}" AND normalized_app_name = "Firefox" AND {{histogram}} is not null AND payload.processes.parent.scalars.browser_engagement_total_uri_count > 0 AND mozfun.map.get_key(environment.experiments, "{{slug}}").branch is not null {% for condition in segment.conditions %} {{condition}} {% endfor %} ), keyValuePairs_{{segment.name}} as ( SELECT segment, branch, SAFE_CAST(key AS float64) as bucket, INT64(PARSE_JSON(hist)[key]) as count FROM json_{{segment.name}}, UNNEST(bqutil.fn.json_extract_keys(hist)) as key ), histogram_{{segment.name}} as ( SELECT segment, branch, bucket, SUM(count) as counts FROM keyValuePairs_{{segment.name}} GROUP BY segment, branch, bucket ORDER BY segment, branch, bucket ), {% endfor %} emptyTable as ( SELECT * FROM json_All WHERE 1=0 ) SELECT segment, branch, bucket, counts FROM ( {% for segment in segments %} {% if segment.name == "All" %} SELECT * FROM histogram_All {% else %} UNION ALL SELECT * FROM histogram_{{segment.name}} {% endif %} {% endfor %} ) ORDER BY segment, branch, bucket {% endautoescape %}