lib/templates/sql/other/glean/pageload_events_os_segments.sql (99 lines of code) (raw):

{% autoescape off %} with {% for branch in branches %} eventdata_{{branch.name}}_desktop as ( SELECT normalized_os as segment, SAFE_CAST((SELECT value FROM UNNEST(event.extra) WHERE key = '{{metric}}') AS int) AS {{metric}}, FROM `moz-fx-data-shared-prod.firefox_desktop.pageload` as m CROSS JOIN UNNEST(events) AS event WHERE DATE(submission_timestamp) >= DATE('{{branch.startDate}}') AND DATE(submission_timestamp) <= DATE('{{branch.endDate}}') AND normalized_channel = "{{branch.channel}}" AND normalized_app_name = "Firefox" {{branch.ver_condition}} {{branch.arch_condition}} {% for condition in branch.glean_conditions %} {{condition}} {% endfor %} {% for isp in blacklist %} AND metadata.isp.name != "{{isp}}" {% endfor %} ), eventdata_{{branch.name}}_android as ( SELECT normalized_os as segment, SAFE_CAST((SELECT value FROM UNNEST(event.extra) WHERE key = '{{metric}}') AS int) AS {{metric}}, FROM `moz-fx-data-shared-prod.fenix.pageload` as m CROSS JOIN UNNEST(events) AS event WHERE DATE(submission_timestamp) >= DATE('{{branch.startDate}}') AND DATE(submission_timestamp) <= DATE('{{branch.endDate}}') AND normalized_channel = "{{branch.channel}}" {{branch.ver_condition}} {{branch.arch_condition}} {% for condition in branch.glean_conditions %} {{condition}} {% endfor %} {% for isp in blacklist %} AND metadata.isp.name != "{{isp}}" {% endfor %} ), aggregate_{{branch.name}}_desktop as ( SELECT segment, "{{branch.name}}" as branch, {{metric}} as bucket, COUNT(*) as counts FROM eventdata_{{branch.name}}_desktop WHERE {{metric}} > {{minVal}} AND {{metric}} < {{maxVal}} GROUP BY segment, branch, bucket ORDER BY segment, branch, bucket ), aggregate_{{branch.name}}_android as ( SELECT segment, "{{branch.name}}" as branch, {{metric}} as bucket, COUNT(*) as counts FROM eventdata_{{branch.name}}_android WHERE {{metric}} > {{minVal}} AND {{metric}} < {{maxVal}} GROUP BY segment, branch, bucket ORDER BY segment, branch, bucket ) {% if branch.last == False %} , {% endif %} {% endfor %} SELECT segment, branch, bucket, counts FROM ( {% for branch in branches %} SELECT * FROM aggregate_{{branch.name}}_desktop UNION ALL SELECT * FROM aggregate_{{branch.name}}_android {% if branch.last == False %} UNION ALL {% endif %} {% endfor %} ) ORDER BY segment, branch, bucket {% endautoescape %}