-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #134 from Synthetixio/feat/add-perp-acc-activity
Add Perps Account Activity Models
- Loading branch information
Showing
8 changed files
with
464 additions
and
0 deletions.
There are no files selected for viewing
89 changes: 89 additions & 0 deletions
89
...nthetix/models/marts/arbitrum/mainnet/perp/fct_perp_account_activity_arbitrum_mainnet.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
{{ config( | ||
materialized = "view", | ||
tags = ["perp", "account_activity", "arbitrum", "mainnet"] | ||
) }} | ||
|
||
with active_accounts as ( | ||
select distinct | ||
date_trunc('day', ts) as activity_date, | ||
account_id | ||
from {{ ref('fct_perp_trades_arbitrum_mainnet') }} | ||
), | ||
|
||
date_range as ( | ||
select | ||
generate_series( | ||
date(min(activity_date)), | ||
date(max(activity_date)), | ||
interval '1 day' | ||
)::date as activity_date | ||
from active_accounts | ||
), | ||
|
||
active_accounts_daily as ( | ||
select | ||
date_range.activity_date, | ||
count(distinct active_accounts.account_id) as active_accounts | ||
from date_range | ||
left join active_accounts | ||
on date_range.activity_date = active_accounts.activity_date | ||
group by date_range.activity_date | ||
), | ||
|
||
active_accounts_monthly as ( | ||
select | ||
date_range.activity_date, | ||
count(distinct active_accounts.account_id) as active_accounts | ||
from date_range | ||
left join active_accounts | ||
on | ||
date_range.activity_date - interval '27 days' | ||
<= active_accounts.activity_date | ||
and date_range.activity_date >= active_accounts.activity_date | ||
group by date_range.activity_date | ||
), | ||
|
||
new_accounts as ( | ||
select | ||
min(activity_date) as start_date, | ||
account_id | ||
from active_accounts | ||
group by account_id | ||
), | ||
|
||
new_accounts_daily as ( | ||
select | ||
date_range.activity_date, | ||
count(new_accounts.account_id) as new_accounts | ||
from date_range | ||
left join new_accounts | ||
on date_range.activity_date = new_accounts.start_date | ||
group by date_range.activity_date, new_accounts.start_date | ||
), | ||
|
||
new_accounts_monthly as ( | ||
select distinct | ||
activity_date, | ||
sum(new_accounts) over ( | ||
order by activity_date | ||
range between interval '27 days' preceding and current row | ||
) as new_accounts | ||
from new_accounts_daily | ||
) | ||
|
||
select | ||
dr.activity_date as ts, | ||
dau.active_accounts as dau, | ||
mau.active_accounts as mau, | ||
new_accounts_daily.new_accounts as new_accounts_daily, | ||
new_accounts_monthly.new_accounts as new_accounts_monthly | ||
from date_range as dr | ||
left join active_accounts_daily as dau | ||
on dr.activity_date = dau.activity_date | ||
left join active_accounts_monthly as mau | ||
on dr.activity_date = mau.activity_date | ||
left join new_accounts_daily | ||
on dr.activity_date = new_accounts_daily.activity_date | ||
left join new_accounts_monthly | ||
on dr.activity_date = new_accounts_monthly.activity_date | ||
order by ts desc |
27 changes: 27 additions & 0 deletions
27
transformers/synthetix/models/marts/arbitrum/mainnet/perp/schema.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
...nthetix/models/marts/arbitrum/sepolia/perp/fct_perp_account_activity_arbitrum_sepolia.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
{{ config( | ||
materialized = "view", | ||
tags = ["perp", "account_activity", "arbitrum", "sepolia"] | ||
) }} | ||
|
||
with active_accounts as ( | ||
select distinct | ||
date_trunc('day', ts) as activity_date, | ||
account_id | ||
from {{ ref('fct_perp_trades_arbitrum_sepolia') }} | ||
), | ||
|
||
date_range as ( | ||
select | ||
generate_series( | ||
date(min(activity_date)), | ||
date(max(activity_date)), | ||
interval '1 day' | ||
)::date as activity_date | ||
from active_accounts | ||
), | ||
|
||
active_accounts_daily as ( | ||
select | ||
date_range.activity_date, | ||
count(distinct active_accounts.account_id) as active_accounts | ||
from date_range | ||
left join active_accounts | ||
on date_range.activity_date = active_accounts.activity_date | ||
group by date_range.activity_date | ||
), | ||
|
||
active_accounts_monthly as ( | ||
select | ||
date_range.activity_date, | ||
count(distinct active_accounts.account_id) as active_accounts | ||
from date_range | ||
left join active_accounts | ||
on | ||
date_range.activity_date - interval '27 days' | ||
<= active_accounts.activity_date | ||
and date_range.activity_date >= active_accounts.activity_date | ||
group by date_range.activity_date | ||
), | ||
|
||
new_accounts as ( | ||
select | ||
min(activity_date) as start_date, | ||
account_id | ||
from active_accounts | ||
group by account_id | ||
), | ||
|
||
new_accounts_daily as ( | ||
select | ||
date_range.activity_date, | ||
count(new_accounts.account_id) as new_accounts | ||
from date_range | ||
left join new_accounts | ||
on date_range.activity_date = new_accounts.start_date | ||
group by date_range.activity_date, new_accounts.start_date | ||
), | ||
|
||
new_accounts_monthly as ( | ||
select distinct | ||
activity_date, | ||
sum(new_accounts) over ( | ||
order by activity_date | ||
range between interval '27 days' preceding and current row | ||
) as new_accounts | ||
from new_accounts_daily | ||
) | ||
|
||
select | ||
dr.activity_date as ts, | ||
dau.active_accounts as dau, | ||
mau.active_accounts as mau, | ||
new_accounts_daily.new_accounts as new_accounts_daily, | ||
new_accounts_monthly.new_accounts as new_accounts_monthly | ||
from date_range as dr | ||
left join active_accounts_daily as dau | ||
on dr.activity_date = dau.activity_date | ||
left join active_accounts_monthly as mau | ||
on dr.activity_date = mau.activity_date | ||
left join new_accounts_daily | ||
on dr.activity_date = new_accounts_daily.activity_date | ||
left join new_accounts_monthly | ||
on dr.activity_date = new_accounts_monthly.activity_date | ||
order by ts desc |
27 changes: 27 additions & 0 deletions
27
transformers/synthetix/models/marts/arbitrum/sepolia/perp/schema.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
...rmers/synthetix/models/marts/base/mainnet/perp/fct_perp_account_activity_base_mainnet.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
{{ config( | ||
materialized = "view", | ||
tags = ["perp", "account_activity", "base", "mainnet"] | ||
) }} | ||
|
||
with active_accounts as ( | ||
select distinct | ||
date_trunc('day', ts) as activity_date, | ||
account_id | ||
from {{ ref('fct_perp_trades_base_mainnet') }} | ||
), | ||
|
||
date_range as ( | ||
select | ||
generate_series( | ||
date(min(activity_date)), | ||
date(max(activity_date)), | ||
interval '1 day' | ||
)::date as activity_date | ||
from active_accounts | ||
), | ||
|
||
active_accounts_daily as ( | ||
select | ||
date_range.activity_date, | ||
count(distinct active_accounts.account_id) as active_accounts | ||
from date_range | ||
left join active_accounts | ||
on date_range.activity_date = active_accounts.activity_date | ||
group by date_range.activity_date | ||
), | ||
|
||
active_accounts_monthly as ( | ||
select | ||
date_range.activity_date, | ||
count(distinct active_accounts.account_id) as active_accounts | ||
from date_range | ||
left join active_accounts | ||
on | ||
date_range.activity_date - interval '27 days' | ||
<= active_accounts.activity_date | ||
and date_range.activity_date >= active_accounts.activity_date | ||
group by date_range.activity_date | ||
), | ||
|
||
new_accounts as ( | ||
select | ||
min(activity_date) as start_date, | ||
account_id | ||
from active_accounts | ||
group by account_id | ||
), | ||
|
||
new_accounts_daily as ( | ||
select | ||
date_range.activity_date, | ||
count(new_accounts.account_id) as new_accounts | ||
from date_range | ||
left join new_accounts | ||
on date_range.activity_date = new_accounts.start_date | ||
group by date_range.activity_date, new_accounts.start_date | ||
), | ||
|
||
new_accounts_monthly as ( | ||
select distinct | ||
activity_date, | ||
sum(new_accounts) over ( | ||
order by activity_date | ||
range between interval '27 days' preceding and current row | ||
) as new_accounts | ||
from new_accounts_daily | ||
) | ||
|
||
select | ||
dr.activity_date as ts, | ||
dau.active_accounts as dau, | ||
mau.active_accounts as mau, | ||
new_accounts_daily.new_accounts as new_accounts_daily, | ||
new_accounts_monthly.new_accounts as new_accounts_monthly | ||
from date_range as dr | ||
left join active_accounts_daily as dau | ||
on dr.activity_date = dau.activity_date | ||
left join active_accounts_monthly as mau | ||
on dr.activity_date = mau.activity_date | ||
left join new_accounts_daily | ||
on dr.activity_date = new_accounts_daily.activity_date | ||
left join new_accounts_monthly | ||
on dr.activity_date = new_accounts_monthly.activity_date | ||
order by ts desc |
27 changes: 27 additions & 0 deletions
27
transformers/synthetix/models/marts/base/mainnet/perp/schema.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.