各購読がアクティブだった期間がある場合は、アクティブな購読について毎週のデータを取得する方法はありますか? 私はサブスクリプションのリストとのBigQuery内のテーブルを持っている:Google BigQueryの時間帯からの購読の週別内訳を取得
+-----------------+---------+---------------+--------------+
| subscription_id | user_id | subscribed_at | cancelled_at |
+-----------------+---------+---------------+--------------+
| 1 | 2 | 2017-01-05 | 2017-06-03 |
| 2 | 3 | 2017-01-07 | 2017-09-15 |
| 3 | 4 | 2017-01-09 | NULL |
| 4 | 1 | 2017-01-11 | 2017-05-27 |
| 5 | 3 | 2017-01-15 | NULL |
+-----------------+---------+---------------+--------------+
私はそれぞれのユニークなsubscription_id + active_week組み合わせのレコードを取得する必要があります。このようなもの:
+-----------------+---------+---------------+--------------+-------------+
| subscription_id | user_id | subscribed_at | cancelled_at | active_week |
+-----------------+---------+---------------+--------------+-------------+
| 1 | 2 | 2017-01-05 | 2017-06-03 | 201701 |
| 2 | 3 | 2017-01-07 | 2017-09-15 | 201701 |
| 1 | 2 | 2017-01-05 | 2017-06-03 | 201702 |
| 2 | 3 | 2017-01-07 | 2017-09-15 | 201702 |
| 3 | 4 | 2017-01-09 | NULL | 201702 |
| 4 | 1 | 2017-01-11 | 2017-05-27 | 201702 |
| 1 | 2 | 2017-01-05 | 2017-06-03 | 201703 |
| 2 | 3 | 2017-01-07 | 2017-09-15 | 201703 |
| 3 | 4 | 2017-01-09 | NULL | 201703 |
| 4 | 1 | 2017-01-11 | 2017-05-27 | 201703 |
| 5 | 3 | 2017-01-15 | NULL | 201703 |
| ... | ...| ... |... | ... |
+-----------------+---------+---------------+--------------+-------------+
私はthisから行ってみましたが、運はありませんでした。
SELECT
SPLIT(RPAD('', 1 + DATEDIFF(sub.ended_date, sub.started_date), '.'),'') AS weeks,
sub.subscription_Id,
sub.customer_id
FROM (
SELECT
subscribed_at AS started_date,
CASE
WHEN cancelled_at IS NULL THEN TIMESTAMP(CURRENT_DATE())
ELSE TIMESTAMP(cancelled_at)
END AS ended_date,
subscription_id,
customer_id
FROM
[subscriptions]) AS sub
ご協力いただきありがとうございます。 - それは、余分な存在である理由私はあなたのsubscribed_at
とcancelled_at
フィールドを前提とSTRING
データ型である:
ベスト、 デニス・以下
ようこそ!純粋なコードの書き込み要求は、スタックオーバーフローに関するトピックではありません。ここでは特定のプログラミング問題に関連する質問がありますが、私たちはあなた自身で書くことを喜んで支援します! [あなたが試したこと](https://stackoverflow.com/help/how-to-ask)とあなたが立ち往生しているところを教えてください。これはまた、あなたの質問によく答えるのにも役立ちます。 – WhatsThePoint
これは、開始に役立つはずです。https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#extract –
あなたが試したこととあなたの持つ問題を示すだけでそこからそれを選んでください:o) –