Hier ist die erste AbfrageJoin zwei einfache Abfragen in BigQuery
SELECT
MONTH(TIMESTAMP(REGEXP_EXTRACT(date, '.*.([0-9]{4})$') + '-' +
REGEXP_EXTRACT(date, '.([0-9]{2}).') + '-' +
REGEXP_EXTRACT(date, '^([0-9]{2}).*'))) AS month,
COUNT(DISTINCT cons_id)
FROM
[table1]
WHERE
dbo_type = 'smth'
GROUP BY month
nach Monat gruppiert Benutzer-IDs zurück. Hier ist der zweite ein
SELECT
MONTH(TIMESTAMP(REGEXP_EXTRACT(date, '.*.([0-9]{4})$') + '-' +
REGEXP_EXTRACT(date, '.([0-9]{2}).') + '-' +
REGEXP_EXTRACT(date, '^([0-9]{2}).*'))) AS month,
COUNT(DISTINCT cons_id)
FROM
[table1]
WHERE
dbo_type = 'smth'
AND success_operations > 0
GROUP BY month
aktiv Benutzer-IDs gruppiert nach demselben Monate zurück. Wie trete sie um einen einfachen Tisch zu bekommen wie
month | users | active_users ------| --------- | --------- 9 | 100 | 50 10 | 120 | 60 11 | 140 | 70
--- ANTWORT ----
Danke, Michael!
#legacySQL
SELECT
INTEGER(REGEXP_EXTRACT(DATE, '.([0-9]{2}).')) AS month,
EXACT_COUNT_DISTINCT(cons_id) AS users,
EXACT_COUNT_DISTINCT(IF(success_operations > 0, cons_id, NULL)) AS active_users
FROM
[project:dataset.table]
WHERE
dbo_type = 'smth'
GROUP BY month
ORDER BY month
Danke für die Beantwortung. Die Aggregatfunktion MONTH funktioniert nur für Legacy-SQL. Sowie REGEXP_EXTRACT –
oh, ich vermisste dies - konzentrierte sich auf wie zu zählen - wird diese kurz antworten. Bitte klären Sie - brauchen Sie es in Legacy oder Standard? Können Sie ein Beispiel für Ihr Datumsfeld angeben? –
siehe Update meiner Antwort –