1. with tmp_avg as( SELECT City, round(avg(Sales),2) as Sales_avg FROM `bakeya-18.practice.superstore` group by City ), tmp_sum as( SELECT City, round(sum(Sales),2) as Sales_sum FROM `bakeya-18.practice.superstore` group by City ) select * from tmp_sum as t1 inner join tmp_avg as t2 --on t1.City = t2.City using (City) 2. with tmp_avg as( SELECT City, round(avg(Sales),2) as Sales_avg FROM `bakeya-18.practice.superstore` group by City ), tmp_sum as( SELECT City, round(sum(Sales),2) as Sales_sum FROM `bakeya-18.practice.superstore` group by City ) select * from tmp_sum as t1 inner join tmp_avg as t2 --on t1.City = t2.City using (City) 3. with tmp_avg as( SELECT City, round(avg(Sales),2) as Sales_avg FROM `bakeya-18.practice.superstore` group by City ), tmp_sum as( SELECT City as City_name, round(sum(Sales),2) as Sales_sum FROM `bakeya-18.practice.superstore` group by City ) select * from tmp_sum as t1 inner join tmp_avg as t2 on t1.City_name = t2.City --using (City_name) -----with tmp_avg as( SELECT City, round(avg(Sales),2) as Sales_avg FROM `bakeya-18.practice.superstore` group by City ), tmp_sum as( SELECT City as City_name, cast(sum(Sales) as int64) as Sales_sum FROM `bakeya-18.practice.superstore` group by City ), draft_tmp as( select t1.*, t2.sales_avg from tmp_sum as t1 inner join tmp_avg as t2 on t1.City_name = t2.City --using (City_name) ) --select * except(Row_ID,City_name) select t3.* except(Row_ID,Product_ID), t4.Sales_sum, t4.sales_avg, round(Sales / sum(Sales) over(partition by City)*100,2) as Sales_percent from `bakeya-18.practice.superstore` as t3 join draft_tmp as t4 on t3.City = t4.City_name WITH tmp_avg AS( SELECT City, ROUND(AVG(Sales),2) AS Sales_avg FROM `bakeya-18.practice.superstore` GROUP BY City ), tmp_sum AS( SELECT City AS City_name, CAST(SUM(Sales) AS int64) AS Sales_sum FROM `bakeya-18.practice.superstore` GROUP BY City ), draft_tmp AS( SELECT t1.*, t2.sales_avg FROM tmp_sum AS t1 INNER JOIN tmp_avg AS t2 ON t1.City_name = t2.City -USING (City_name) ) -SELECT * EXCEPT(Row_ID, City_name) SELECT t3.* EXCEPT(Row_ID, Product_ID), t4.Sales_sum, t4.sales_avg, ROUND(Sales / SUM(Sales) OVER(PARTITION BY City)*100,2) AS Sales_percent FROM `bakeya-18.practice.superstore` AS t3 JOIN draft_tmp AS t4 ON t3.City = t4.City_name