Вы можете сделать это следующим образом:
Город A - Компания A:
select pick_date, sum(Weight),
sum(case when site = 'SiteA' then 1 else 0 end) as SiteA,
sum(case when site = 'SiteB' then 1 else 0 end) as SiteB,
sum(case when site = 'SiteC' then 1 else 0 end) as SiteC
From tbl
where company_name = 'CompanyA'
group by pick_date
Для города A - Компания B замените «CompanyA» на CompanyB в запросе
Для компании C - Сервис A:
select pick_date, sum(Weight),
sum(case when site = 'SiteA' then 1 else 0 end) as SiteA,
sum(case when site = 'SiteB' then 1 else 0 end) as SiteB,
sum(case when site = 'SiteC' then 1 else 0 end) as SiteC
From tbl
where company_name = 'CompanyC' and service_name = 'ServiceA'
group by pick_date