Postgres SQL, as run
with participating_entities as (
select case when publisher_name is not null and publisher_name is distinct from invoice_issuer_name then publisher_name else provider_name end as service_provider_name,
case when provider_name = 'AWS' and service_name = 'Red Hat OpenShift Service on AWS' then provider_name
when (case when publisher_name is not null and publisher_name is distinct from invoice_issuer_name then publisher_name else provider_name end) <> provider_name then null::text
else provider_name end as host_provider_name,
invoice_issuer_name as invoice_issuer_name,
service_name as service_name,
charge_category as charge_category,
resource_id as resource_id,
billed_cost as billed_cost
from focus.cost_and_usage
where charge_period_start >= $1::timestamptz
and charge_period_end < $2::timestamptz
)
select service_provider_name as service_provider_name,
host_provider_name as host_provider_name,
invoice_issuer_name as invoice_issuer_name,
service_name as service_name,
charge_category as charge_category,
sum(billed_cost) as total_billed_cost,
count(distinct resource_id) as resource_count
from participating_entities
where service_provider_name <> host_provider_name
and charge_category in ('Purchase', 'Usage')
group by service_provider_name, host_provider_name, invoice_issuer_name, service_name, charge_category
order by total_billed_cost desc nulls last, service_provider_name, host_provider_name, invoice_issuer_name nulls last, service_name, charge_category
limit 500Parameters: $1 = period_start, $2 = period_end_before
Original FOCUS SQL
SELECT
ServiceProviderName,
HostProviderName,
InvoiceIssuerName,
ServiceName,
ChargeCategory,
SUM(BilledCost) AS TotalBilledCost,
COUNT(DISTINCT ResourceId) AS ResourceCount
FROM focus_data_table
WHERE ChargePeriodStart >= ? AND ChargePeriodEnd < ?
AND ServiceProviderName != HostProviderName
AND ChargeCategory IN ('Purchase', 'Usage')
GROUP BY
ServiceProviderName,
HostProviderName,
InvoiceIssuerName,
ServiceName,
ChargeCategory
ORDER BY TotalBilledCost DESC