diff --git a/_sql/analytics_stripe_sigma/basic_user_queries.sql b/_sql/analytics/analytics_stripe_sigma/basic_user_queries.sql similarity index 90% rename from _sql/analytics_stripe_sigma/basic_user_queries.sql rename to _sql/analytics/analytics_stripe_sigma/basic_user_queries.sql index 70b02409a9..1cf64c2427 100644 --- a/_sql/analytics_stripe_sigma/basic_user_queries.sql +++ b/_sql/analytics/analytics_stripe_sigma/basic_user_queries.sql @@ -28,3 +28,9 @@ where id IN ( or subscriptions.status = 'past_due' ) group by address_country + + +-- Histogram +select address_country, count(*) +from customers +group by address_country diff --git a/_sql/analytics/analytics_stripe_sigma/subscriptions.sql b/_sql/analytics/analytics_stripe_sigma/subscriptions.sql new file mode 100644 index 0000000000..e90972b713 --- /dev/null +++ b/_sql/analytics/analytics_stripe_sigma/subscriptions.sql @@ -0,0 +1,66 @@ +-- noinspection SqlDialectInspectionForFile +-- noinspection SqlNoDataSourceInspectionForFile +-- noinspection SqlResolveForFile + +-- NB: These are for use in Stripe Sigma, not MySQL +-- NB: You must use single quotes instead of double quotes when comparing string values. + +-- Status values: past_due, incomplete, active, canceled, incomplete_expired (perhaps not exhaustive) +select distinct status +from subscriptions + +select count(*) +from subscriptions +where status IN ('active'); + +-- Metadata is in the 'subscriptions_metadata' table, and we store 'username', 'email', and 'user_token' +select + m.value, + m.key, + s.id, + s.created, + s.cancel_at, + s.canceled_at +from subscriptions as s +join subscriptions_metadata as m +on m.subscription_id = s.id +where m.key = 'username' + + +-- Full mapping of Stripe subscribers to FakeYou users +select + s.id as subscription_id, + user_tokens.user_token, + usernames.username, + emails.email, + s.status as subscription_status, + s.created, + s.cancel_at, + s.canceled_at +from subscriptions as s +join ( + select + m.subscription_id, + m.value as username + from subscriptions_metadata as m + where m.key = 'username' +) as usernames +on s.id = usernames.subscription_id +join ( + select m.subscription_id, + m.value as email + from subscriptions_metadata as m + where m.key = 'email' +) as emails +on s.id = emails.subscription_id +join ( + select m.subscription_id, + m.value as user_token + from subscriptions_metadata as m + where m.key = 'user_token' +) as user_tokens +on s.id = user_tokens.subscription_id +order by s.id asc + + + diff --git a/_sql/analytics_stripe_sigma/user_cohorts.sql b/_sql/analytics/analytics_stripe_sigma/user_cohorts.sql similarity index 100% rename from _sql/analytics_stripe_sigma/user_cohorts.sql rename to _sql/analytics/analytics_stripe_sigma/user_cohorts.sql diff --git a/_sql/analytics/users/subscribers/loyal_user_cohorts_mom.sql b/_sql/analytics/users/subscribers/loyal_user_cohorts_mom.sql index c2a8dd4ce6..d5c08146d9 100644 --- a/_sql/analytics/users/subscribers/loyal_user_cohorts_mom.sql +++ b/_sql/analytics/users/subscribers/loyal_user_cohorts_mom.sql @@ -24,7 +24,7 @@ FROM ( SELECT DISTINCT user_token FROM user_subscriptions ) - AND j.created_at BETWEEN '2023-01-01 00:00:00' AND '2023-02-01 00:00:00' + AND j.created_at BETWEEN '2022-12-01 00:00:00' AND '2023-01-01 00:00:00' UNION SELECT u.username as username, @@ -36,7 +36,7 @@ FROM ( SELECT DISTINCT user_token FROM user_subscriptions ) - AND j.created_at BETWEEN '2023-01-01 00:00:00' AND '2023-02-01 00:00:00' + AND j.created_at BETWEEN '2022-12-01 00:00:00' AND '2023-01-01 00:00:00' UNION SELECT u.username as username, @@ -48,8 +48,9 @@ FROM ( SELECT DISTINCT user_token FROM user_subscriptions ) - AND j.created_at BETWEEN '2023-01-01 00:00:00' AND '2023-02-01 00:00:00' + AND j.created_at BETWEEN '2022-12-01 00:00:00' AND '2023-01-01 00:00:00' ) as t GROUP BY username -ORDER BY total_use_count desc +ORDER BY total_use_count desc; +