with stake as(
SELECT *,
CASE
when ETH_TO_ADDRESS=lower('0xC874b064f465bdD6411D45734b56fac750Cda29A') then 'Stakewise'
when ETH_TO_ADDRESS=lower('0x84db6eE82b7Cf3b47E8F19270abdE5718B936670') then 'stkr-ankr'
when ETH_TO_ADDRESS in ('0xcbc1065255cbc3ab41a6868c22d1f1c573ab89fd','0x49d72e3973900a195a155a46441f0c08179fdb64') then 'Cream'
when ETH_TO_ADDRESS in ('0x2cac916b2a963bf162f076c0a8a4a8200bcfbfb4','0x4d05e3d48a938db4b7a9a59a802d5b45011bde58') then 'Rocket_pool'
when ETH_TO_ADDRESS=lower('0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84') then 'Lido'
when ETH_TO_ADDRESS=lower('0x00000000219ab540356cBB839Cbe05303d7705Fa') then 'Direct staking'
end as platform
FROM ethereum.core.ez_eth_transfers
where platform is not null),
wallets as(
SELECT
WITHDRAWER,
case
when WITHDRAWER in (SELECT eth_from_address from stake) then 'Wallet has staked ETH'
ELSE 'Wallet has not staked ETH'
end as Condition
from ethereum.maker.ez_withdrawals
where symbol in ('WETH','ETH') and block_timestamp::date>CURRENT_DATE-30 and tx_status='SUCCESS'
GROUP BY 1,2)
SELECT
count(DISTINCT WITHDRAWER) as number_of_wallets,
Condition
from wallets
GROUP BY Condition