def _query_()

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]