0
に2つの単純なクエリに参加ここで第一クエリ月ごとにグループ化されたユーザーのIDを返す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
です。ここ は第二1ヶ月と同じでグループ化されたアクティブユーザーのIDを返す
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
です。どのようANSWER ---
month | users | active_users ------| --------- | --------- 9 | 100 | 50 10 | 120 | 60 11 | 140 | 70
のような単純なテーブルを得るためにそれらを結合します----
おかげで、マイケル!
#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
ありがとうございます。集計関数MONTHは、従来のSQLに対してのみ機能します。同様にREGEXP_EXTRACT –
ああ、私はこれを逃した - カウントする方法に焦点を当てていた - すぐにこの1つに再回答します。明確にしてください - レガシーまたはスタンダードでそれを必要としますか?あなたの日付フィールドの例を挙げることができますか? –
私の答え –