Uploaded by www.bakeyalakshmi

SQL päringud CTE-dega

advertisement
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
Download