SELECT
CASE
WHEN RATIO < 0.05 THEN '<5%'
WHEN 0.1 > RATIO >= 0.05 THEN '5-10%'
WHEN 0.5 > RATIO >= 0.1 THEN '10-30%'
WHEN 0.5 > RATIO >= 0.3 THEN '30-50%'
WHEN 0.7 > RATIO >= 0.5 THEN '50-70%'
WHEN 1 > RATIO >= 0.7 THEN '70-100%'
ELSE 'Over 100%' END as Group_by_ratio,
SUM(AMOUNT) as TOTAL,
DATE_TRUNC('Month', BLOCKTIME) as BLOCKTIME_MONTH
FROM(
SELECT FROM_ADDRESS, FEE/AMOUNT AS RATIO, AMOUNT, BLOCKTIME, TX_ID FROM(
SELECT ethereum.transactions.FROM_ADDRESS, FEE_USD AS FEE, AMOUNT, ethereum.transactions.TX_ID as TX_ID, ethereum.transactions.BLOCK_TIMESTAMP AS BLOCKTIME FROM ethereum.transactions, ethereum.udm_events
WHERE ethereum.transactions.TO_ADDRESS = '0xc5bddf9843308380375a611c18b50fb9341f502a'
AND ethereum.transactions.FUNCTION_SIGNATURE = '0x4e71d92d'
AND AMOUNT > 0
AND ethereum.transactions.TX_ID = ethereum.udm_events.TX_ID
AND ethereum.transactions.FROM_ADDRESS = ethereum.udm_events.TO_ADDRESS
))
GROUP BY 1,3
ORDER BY BLOCKTIME_MONTH DESC, TOTAL DESC
-- )
-- GROUP BY 1,3
-- ORDER BY 3,2