analytics queries
This commit is contained in:
parent
ce3f83e9af
commit
b335e1839c
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue