Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- your answer but not working
- WITH daily_sums_table AS
- (select city.name,
- daily_sales.day,
- salesman.id as salesman_id,
- sum(amount_earned) as sum_amount_earned
- from daily_sales
- join salesman on daily_sales.salesman_id = salesman.id
- join city on salesman.city_id = city.id
- group by 1,2,3),
- average_daily_table AS
- (select avg(sum_amount_earned) as avg_daily_sums_earned
- from daily_sums_table)
- select city.id,
- city.name,
- count(daily_sums_table.day)
- --count(case when daily_sums_earned > avg_daily_sums_earned then 1 else 0 end)
- from city
- join salesman
- on city.id = salesman.city_id
- join daily_sales
- on salesman.id = daily_sales.salesman_id
- join daily_sums_table
- on salesman.id = daily_sums_table.salesman_id
- where sum_amount_earned > (select avg_daily_sums_earned from average_daily_table)
- group by 1,2
- ------------------------------------------------------------------------------------------------------------------------
- answer:
- with daily_sums as (
- select daily_sales.day,
- city.id,
- city.name,
- sum(amount_earned)as sum_amount_earned
- from daily_sales
- join salesman on daily_sales.salesman_id = salesman.id
- join city on salesman.city_id = city.id
- group by daily_sales.day,city.id,city.name),
- average_daily as
- (select avg(sum_amount_earned) as avg_sum_amount_earned from daily_sums)
- select daily_sums.id,
- daily_sums.name,
- count(daily_sums.day) from
- daily_sums
- where sum_amount_earned > (select avg_sum_amount_earned from average_daily)
- group by daily_sums.id, daily_sums.name
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement