0 and block_time > '{{start_date}}' group by 1 union all select date_trunc('hour', block_time) AS stat_date ,sum(usd_amount) / sum("token_b_amount") as price ,sum(usd_amount * power(10,{{decimals}}) ) / sum("token_b_amount_ra"> 0 and block_time > '{{start_date}}' group by 1 union all select date_trunc('hour', block_time) AS stat_date ,sum(usd_amount) / sum("token_b_amount") as price ,sum(usd_amount * power(10,{{decimals}}) ) / sum("token_b_amount_ra"> 0 and block_time > '{{start_date}}' group by 1 union all select date_trunc('hour', block_time) AS stat_date ,sum(usd_amount) / sum("token_b_amount") as price ,sum(usd_amount * power(10,{{decimals}}) ) / sum("token_b_amount_ra">
--start_date为统计开始日期格式为:2022-06-01 00:00:00
--Token Contract Address为Token合约地址
--decimals 为Token的精度,在以太坊浏览器中查询
select 
    (stat_date + '8 hour'::interval) as stat_date
    ,sum(volume_usd_amount) as volume_usd_amount
from 
(
        select 
             
            date_trunc('hour', block_time) AS stat_date
            ,sum(usd_amount) / sum("token_a_amount") as price
            ,sum(usd_amount  *  power(10,{{decimals}}) ) / sum("token_a_amount_raw") as a_price
            ,sum(usd_amount) as volume_usd_amount
        from dex.trades
        where "token_a_address" = CONCAT('\\x', substring('{{Token Contract Address}}' from 3))::bytea -- Token address
        and "token_b_amount_raw" >0
        and block_time > '{{start_date}}'
        group by 1    

        union all 

        select 
            date_trunc('hour', block_time) AS stat_date
            ,sum(usd_amount)  / sum("token_b_amount") as price
            ,sum(usd_amount  * power(10,{{decimals}}) )  / sum("token_b_amount_raw") as a_price
            ,sum(usd_amount) as volume_usd_amount
        from dex.trades
        where "token_b_address" = CONCAT('\\x', substring('{{Token Contract Address}}' from 3))::bytea -- Token address
        and "token_b_amount_raw" >0
        and block_time > '{{start_date}}'
        group by 1
) pr
group by
    (stat_date + '8 hour'::interval)
order by
    (stat_date + '8 hour'::interval)