in trend_getter/scenarios.py [0:0]
def _query_(self) -> None:
if self.metric == "dau":
query = f"""
SELECT submission_date,
IF(country IN ({",".join([f"'{i}'" for i in self.countries])}), country, "ROW") AS country,
{" ".join([i.query_select for i in self.scenarios.values()])}
SUM(dau) AS dau,
FROM `mozdata.telemetry.active_users_aggregates`
WHERE app_name IN ({",".join([f"'{i}'" for i in self.product_group])})
AND submission_date BETWEEN "{self.historical_start_date}" AND "{self.historical_end_date}"
GROUP BY ALL
ORDER BY {", ".join([str(i + 1) for i in range(len(self.scenarios) + 2)])}
"""
elif self.metric == "mau":
query = f"""
SELECT submission_date,
IF(country IN ({",".join([f"'{i}'" for i in self.countries])}), country, "ROW") AS country,
{" ".join([i.query_select for i in self.scenarios.values()])}
SUM(mau) AS dau,
FROM `mozdata.telemetry.active_users_aggregates`
WHERE app_name IN ({",".join([f"'{i}'" for i in self.product_group])})
AND submission_date BETWEEN "{self.historical_start_date}" AND "{self.historical_end_date}"
GROUP BY ALL
ORDER BY {", ".join([str(i + 1) for i in range(len(self.scenarios) + 2)])}
"""
elif self.metric == "engagement":
query = f"""
SELECT submission_date,
IF(country IN ({",".join([f"'{i}'" for i in self.countries])}), country, "ROW") AS country,
{" ".join([i.query_select for i in self.scenarios.values()])}
SUM(dau) / SUM(mau) AS dau,
FROM `moz-fx-data-shared-prod.telemetry.desktop_engagement`
WHERE app_name IN ({",".join([f"'{i}'" for i in self.product_group])})
AND submission_date BETWEEN "{self.historical_start_date}" AND "{self.historical_end_date}"
AND lifecycle_stage = "existing_users"
GROUP BY ALL
ORDER BY {", ".join([str(i + 1) for i in range(len(self.scenarios) + 2)])}
"""
return sqlglot.transpile(query, read="bigquery", pretty=True)[0]