mlhOvertime Markets Profitable Traders 3
Updated 2022-08-25Copy 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
›
⌄
with outflow as (SELECT from_address,
sum(raw_amount/power(10, decimals)) as outflow
FROM optimism.core.fact_token_transfers
LEFT outer JOIN optimism.core.dim_contracts ON address = contract_address
WHERE symbol LIKE 'sUSD'
AND to_address LIKE lower('0x170a5714112daEfF20E798B6e92e25B86Ea603C1')
AND block_timestamp > CURRENT_DATE - 14
GROUP BY 1
)
SELECT CASE WHEN loss < -2000 THEN 'Over 2 K Loss'
WHEN loss BETWEEN -2000 AND -1000 THEN '1 K to 2 K Loss'
WHEN loss BETWEEN -1000 AND 0 THEN '0 and 1 K Loss'
WHEN loss BETWEEN 0 AND 1000 THEN '0 to 1 K profit'
WHEN loss BETWEEN 1000 AND 2000 THEN '1 K to 2 K profit'
ELSE 'Over 2 K profit' END as user_group,
count(DISTINCT from_address) as users,
count(bet_count) as bets
FROM (SELECT from_address,
bet_count,
case WHEN outflow is NULL THEN -1 * inflow ELSE outflow - inflow END as loss
FROM (SELECT to_address,
count(DISTINCT tx_hash) as bet_count,
sum(raw_amount/power(10, decimals)) as inflow
FROM optimism.core.fact_token_transfers
LEFT outer JOIN optimism.core.dim_contracts on address = contract_address
WHERE symbol LIKE 'sUSD'
AND from_address LIKE lower('0x170a5714112daEfF20E798B6e92e25B86Ea603C1')
AND block_timestamp > CURRENT_DATE - 14
GROUP BY 1
)
LEFT OUTER join outflow on to_address = from_address
HAVING NOT loss is NULL
AND NOT from_address IS NULL
)
GROUP BY 1
Run a query to Download Data