artcraft/_sql/analytics/users/user_retention.sql

79 lines
2.6 KiB
SQL

-- noinspection SqlDialectInspectionForFile
-- noinspection SqlNoDataSourceInspectionForFile
-- noinspection SqlResolveForFile
-- All logged in users with results in the last X days
select u.created_at from users as u
where u.token IN
(select distinct u.token from tts_inference_jobs as j join users u on u.token = j.maybe_creator_user_token where j.created_at > now() - interval 7 day)
order by u.created_at ASC;
-- All logged in users with results in the last X days that are older than Y
select u.created_at from users as u
where u.token IN
(select distinct u.token from tts_inference_jobs as j join users u on u.token = j.maybe_creator_user_token where j.created_at > now() - interval 30 day)
AND u.created_at < now() - interval 30 day
order by u.created_at ASC;
-- ====================== FEBRUARY COHORT ===================================
-- [1] All users created between X and Y
select count(*) from users
where created_at > now() - interval 60 day
and created_at < now() - interval 30 day;
-- [2] Active users from that cohort ^
select count(*) from users as u
where u.token IN
(select distinct u.token from tts_inference_jobs as j join users u on u.token = j.maybe_creator_user_token where j.created_at > now() - interval 30 day)
AND created_at > now() - interval 60 day
AND created_at < now() - interval 30 day;
-- ====================== JANUARY COHORT ===================================
-- [1] All users created between X and Y
select count(*) from users
where created_at > now() - interval 90 day
and created_at < now() - interval 60 day;
-- [2] Active users from that cohort ^
select count(*) from users as u
where u.token IN
(select distinct u.token from tts_inference_jobs as j join users u on u.token = j.maybe_creator_user_token where j.created_at > now() - interval 30 day)
AND created_at > now() - interval 90 day
AND created_at < now() - interval 60 day;
(select distinct u.token from tts_inference_jobs as j join users u on u.token = j.maybe_creator_user_token where j.created_at > now() - interval 30 day)
select j.creator_ip_address, count(*) as number
from tts_inference_jobs as j
where j.created_at > now() - interval 1 day
group by j.creator_ip_address
order by number desc
limit 100;
select count(*) from tts_inference_jobs
where created_at > now() - interval 1 day ;
select count(distinct creator_ip_address) from tts_inference_jobs
where created_at > now() - interval 1 day ;
select j.creator_ip_address, count(*) as number
from tts_inference_jobs as j
where j.created_at > now() - interval 1 day
group by j.creator_ip_address
order by number desc
limit 100;