Рост от месяца к месяцу (тот же столбец) - PullRequest
0 голосов
/ 06 января 2019

Я посмотрел на другие мои решения, и, похоже, ни одно из них не работает для меня. У меня очень простой вопрос.

У меня есть таблица с именем выкупа. Он имеет 3 столбца с именем: foreclosures_id, период, выкупа. Период является уникальным первичным ключом. Тип данных для выкупа столбца является десятичным.

Мой текущий запрос: ВЫБРАТЬ MONTHNAME (точка) AS Reported_Month, ГОД (период) КАК ОТЧЕТНО_ГОД, ФОРМАТ (выкупа, 0) AS выкупа,

(SELECT FORMAT(SUM(f2.foreclosures),0) FROM foreclosures f2
WHERE f2.period <= f1.period AND f1.foreclosures IS NOT NULL)  
AS YTD_Total,

MONTHNAME(DATE_SUB(period, INTERVAL 2 MONTH))  AS Real_Month,
YEAR(DATE_SUB(period, INTERVAL 2 MONTH))  AS Real_Year

FROM foreclosures f1;

Я пытаюсь создать следующий столбец «Рост». Пожалуйста, помогите?

    +----------------+---------------+--------------+------------+
    | Reported_Month | Reported_Year | Foreclosures | Growth %  |
    +----------------+---------------+--------------+------------+
    | January        |          2016 |          201 |            |
    | February       |          2016 |          332 | 65.2%      |
    | March          |          2016 |          240 | -27.7%     |
    | April          |          2016 |          369 | 53.8%      |
    +----------------+---------------+--------------+------------+

1 Ответ

0 голосов
/ 06 января 2019

Вы можете получить потери права выкупа за предыдущий период, используя логику, сходную с совокупной суммой:

SELECT MONTHNAME(period) AS Reported_Month,
       YEAR(period) AS Reported_Year,
       FORMAT(foreclosures, 0) AS Foreclosures,
       (SELECT f2.foreclosures
        FROM foreclosures AS f2
        WHERE f2.period < f.period AND
              f.foreclosures IS NOT NULL
        ORDER BY f2.period DESC
       ) as prev_foreclosures
FROM foreclosures f;

Для показателя роста просто примените арифметику, которую вы использовали бы для этого расчета.

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