From 8719a1a48472edc11baf63967adc0fc5429138c6 Mon Sep 17 00:00:00 2001 From: a1exandr0 Date: Thu, 6 Mar 2025 12:45:29 +0100 Subject: [PATCH 1/3] change logic --- .../cow_alternatives_analysis_4810844.sql | 47 +++++++++++++++---- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql b/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql index d4012c4..63d3d1d 100644 --- a/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql +++ b/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql @@ -78,18 +78,49 @@ all_competitor_transactions as ( from trades_dex_and_aggregators group by 1, 2, 3 +), + +joined_and_filtered as ( + select + * + from + cow_users_filtered + inner join all_competitor_transactions using (address) -- noqa: disable=L032 + where + {{show_competitors_on_target_chain_only}} = 0 or chain_used_for_competitor = '{{chain_of_interest}}' +), + +user_count_per_chain as ( + select + chain_used_for_competitor, + count(distinct address) as distinct_users_count_per_chain + from + joined_and_filtered + group by + 1 +), + +aggregated as ( + select + chain_used_for_competitor, + competitor_project, + sum(competitor_total_volume_usd) as competitor_total_volume_usd, + sum(competitor_total_transactions) as competitor_total_transactions, + count(distinct address) as distinct_users_count + from + joined_and_filtered + group by 1, 2 ) + select chain_used_for_competitor, competitor_project, - sum(competitor_total_volume_usd) as competitor_total_volume_usd, - sum(competitor_total_transactions) as competitor_total_transactions, - count(distinct address) as distinct_users_count + competitor_total_volume_usd, + competitor_total_transactions, + distinct_users_count as distinct_users_count_per_product_per_chain, + distinct_users_count_per_chain from - cow_users_filtered -left join all_competitor_transactions using (address) -- noqa: disable=L032 -where - {{show_competitors_on_target_chain_only}} = 0 or chain_used_for_competitor = '{{chain_of_interest}}' -group by 1, 2 + aggregated +left join user_count_per_chain using (chain_used_for_competitor) -- noqa: disable=L032 order by 3 desc From 3f2f0bfce27ec7dede1baaf9928f37bbc752ba1c Mon Sep 17 00:00:00 2001 From: a1exandr0 Date: Thu, 6 Mar 2025 12:45:59 +0100 Subject: [PATCH 2/3] add linting --- .../competitor_analysis/cow_alternatives_analysis_4810844.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql b/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql index 63d3d1d..69add57 100644 --- a/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql +++ b/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql @@ -81,8 +81,7 @@ all_competitor_transactions as ( ), joined_and_filtered as ( - select - * + select * from cow_users_filtered inner join all_competitor_transactions using (address) -- noqa: disable=L032 From 9bf4f97fadbb110eeb545137c9d06ffff946828f Mon Sep 17 00:00:00 2001 From: a1exandr0 Date: Fri, 7 Mar 2025 16:30:29 +0100 Subject: [PATCH 3/3] fix aggregation --- .../cow_alternatives_analysis_4810844.sql | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql b/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql index 69add57..30a2297 100644 --- a/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql +++ b/cowprotocol/competitor_analysis/cow_alternatives_analysis_4810844.sql @@ -81,7 +81,9 @@ all_competitor_transactions as ( ), joined_and_filtered as ( - select * + select + *, + count(distinct address) over (partition by chain_used_for_competitor) as distinct_users_count_per_chain from cow_users_filtered inner join all_competitor_transactions using (address) -- noqa: disable=L032 @@ -89,23 +91,14 @@ joined_and_filtered as ( {{show_competitors_on_target_chain_only}} = 0 or chain_used_for_competitor = '{{chain_of_interest}}' ), -user_count_per_chain as ( - select - chain_used_for_competitor, - count(distinct address) as distinct_users_count_per_chain - from - joined_and_filtered - group by - 1 -), - aggregated as ( select chain_used_for_competitor, competitor_project, sum(competitor_total_volume_usd) as competitor_total_volume_usd, sum(competitor_total_transactions) as competitor_total_transactions, - count(distinct address) as distinct_users_count + count(distinct address) as distinct_users_count_per_product_per_chain, + any_value(distinct_users_count_per_chain) as distinct_users_count_per_chain from joined_and_filtered group by 1, 2 @@ -117,9 +110,8 @@ select competitor_project, competitor_total_volume_usd, competitor_total_transactions, - distinct_users_count as distinct_users_count_per_product_per_chain, + distinct_users_count_per_product_per_chain, distinct_users_count_per_chain from aggregated -left join user_count_per_chain using (chain_used_for_competitor) -- noqa: disable=L032 order by 3 desc