prometheusDMX Player Trades v2
Updated 2023-08-01Copy Reference Fork
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
WITH trades as (
SELECT
block_timestamp::date as date, nft_id as hero, price,
CASE WHEN currency = 'A.ead892083b3e2c6c.DapperUtilityCoin' THEN 'USD' ELSE '??' END as currency,
CASE WHEN buyer = '{{player_address}}' THEN 'self' else buyer END as buyer,
CASE WHEN seller = '{{player_address}}' THEN 'self' else seller END as seller,
CASE WHEN marketplace = 'A.b8ea91944fd51c43.OffersV2' THEN 'Offer' ELSE 'Market' END as type,
CASE WHEN block_timestamp::date<'2023-02-04' THEN price*0.15 ELSE price*0.135 END as fee_collected,
CONCAT('https://flowscan.org/transaction/', tx_id) as tx
FROM flow.core.ez_nft_sales
WHERE (buyer = '{{player_address}}' OR seller = '{{player_address}}')
AND nft_collection = 'A.e3ad6030cbaff1c2.DimensionX'),
grouped_trades as (
SELECT date,
CASE WHEN buyer='self' THEN count(hero) else 0 END as heroes_bought,
CASE WHEN buyer='self' THEN sum(price) else 0 END as spent,
CASE WHEN seller='self' THEN count(hero) else 0 END as heroes_sold,
CASE WHEN seller='self' THEN sum(price-fee_collected) else 0 END as revenue
FROM trades
GROUP BY date,buyer,seller
),
daily_trades as (
SELECT date,
sum(heroes_bought) as heroes_bought, sum(spent) as expenses,
sum(heroes_sold) as heroes_sold, sum(revenue) as revenue
FROM grouped_trades
GROUP BY date)
SELECT
date,
(sum(revenue) over (order by date ASC))-(sum(expenses) over (order by date ASC)) as net_profit,
sum(expenses) over (order by date ASC) as total_expenses,
sum(revenue) over (order by date ASC) as total_revenue,
expenses, heroes_bought, revenue, heroes_sold
FROM daily_trades
ORDER BY date DESC
Run a query to Download Data