Вопрос в следующем: для предыдущего трека вычислите средневзвешенную (вместо средней) среднюю доходность по странам (доходность определяется как дивиденд, деленный на цену, и указывается в процентах). Средневзвешенное значение включает количество акций в качестве веса. Но я понятия не имею, как найти средневзвешенное значение.
У меня уже есть код, который использовался для вычисления среднего выхода в процентах. Но у меня проблемы с вычислением средневзвешенного средневзма. Я говорил с какими-то одноклассниками, и они сказали, что пытаются использовать формулу: сумма (x * w) / сумма (w) где w - вес. Но у меня проблемы с реализацией этого в моем коде
SELECT Nations.nationName,
AVG(dividend/price) AS Yield
FROM Shares, Nations
WHERE Shares.nationID=Nations.ID
GROUP BY Nations.nationName;
В конце концов, средневзвешенное значение должно быть компьютерным, но я просто не знаю, как реализовать это в коде. Материал, на котором мы должны основывать эту проблему, бесполезен.
1 ответ
Я правильно за вами следил, вы должны учесть:
SELECT
n.nationName,
SUM(s.quantity * s.dividend / s.price)/IIF(SUM(s.quantity) = 0, NULL, SUM(s.quantity)) AS weighted_yield
FROM Shares s
INNER JOIN Nations n ON s.nationID = n.ID
GROUP BY n.nationName;
Примечания:
- всегда предпочитаю явную
JOIN
s на старой школеJOIN
s - Кроме того, рекомендуется использовать псевдонимы таблиц, поскольку они делают запрос короче и легче отслеживаются.
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.