with resps as
(select defillama.get('/protocols', {}) as resp),
positive as (
select
value:category::string as category,
value:name::string as name,
cast(value:change_1d as decimal(38,2)) as one_day_change,
value:description::string as description
from resps,
lateral flatten (input => resp:data)
where category = 'Dexes'
and one_day_change > 0
order by 3 desc
limit 10),
negative as (
select
value:category::string as category,
value:name::string as name,
cast(value:change_1d as decimal(38,2)) as one_day_change,
value:description::string as description
from resps,
lateral flatten (input => resp:data)
where category = 'Dexes'
and one_day_change < 0
order by 3
limit 10)
select
name,
one_day_change,
description,
'Positive' as category
from positive