Как получить процент от столбца на основе другого столбца в SQL - PullRequest
0 голосов
/ 16 апреля 2020

База данных SQLite здесь

У меня вопрос: в каких странах самый высокий доход от продаж? Какой процент от общего дохода составляет каждая страна?

Я уже решил первую часть вопроса. Но я не могу решить второй вопрос.

Вот мой код:

 SELECT invoices.BillingCountry, SUM(invoice_items.UnitPrice * invoice_items.Quantity) Total
FROM invoices
JOIN invoice_items ON invoice_items.InvoiceId = invoices.InvoiceId
GROUP BY invoices.BillingCountry
ORDER BY SUM(invoice_items.UnitPrice * invoice_items.Quantity) DESC;

Как мне решить вопрос «Какой процент от общего дохода составляет каждая страна?»

1 Ответ

2 голосов
/ 16 апреля 2020

Для этого вы можете использовать функции окна:

SELECT 
    i.BillingCountry, 
    SUM(ii.UnitPrice * ii.Quantity) Total,
    SUM(ii.UnitPrice * ii.Quantity) / SUM(SUM(ii.UnitPrice * ii.Quantity)) OVER() Ratio
FROM invoices i
JOIN invoice_items ii ON ii.InvoiceId = i.InvoiceId
GROUP BY i.BillingCountry
ORDER BY Total DESC;

Окно sum() дает вам sum() продаж каждой страны за весь набор данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...