Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Oblicz procent w poprzednim miesiącu (w tym samym roku)

Możesz zostawić zapytanie do siebie na numerze miesiąca minus 1. Wtedy masz sumę miesiąca i ostatniego miesiąca w jednym wierszu i możesz obliczyć procent. Podobne do następujących:

SELECT monthname(concat('1970-', lpad(A.MONTH, 2, '0'), '-01')) AS MONTH,
       A.SALE_PRICE,
       CASE
         WHEN A.SALE_PRICE IS NULL
           THEN NULL
         WHEN B.SALE_PRICE IS NULL
           THEN NULL
         WHEN A.SALE_PRICE = 0
           THEN NULL
         ELSE
           (B.SALE_PRICE / A.SALE_PRICE - 1) * 100
       END AS PERCENTAGE
       FROM (SELECT month(DATE_PURCHASED) AS MONTH,
                    sum(SALE_PRICE) AS SALE_PRICE,
                    FROM SALE
                    WHERE year(DATE_PURCHASED) = 2017
                    GROUP BY MONTH) A
            LEFT JOIN (SELECT month(DATE_PURCHASED) AS MONTH,
                              sum(SALE_PRICE) AS SALE_PRICE,
                              FROM SALE
                              WHERE year(DATE_PURCHASED) = 2017
                              GROUP BY MONTH) B
                      ON A.MONTH - 1 = B.MONTH
       ORDER BY A.MONTH;

Uwaga A i B będące Twoim zapytaniem, po prostu zmodyfikowane tak, aby miesiąc był numeryczny, ponieważ jest to potrzebne w ON klauzula.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python od podstaw:stwórz dynamiczną stronę internetową

  2. ER_FK_NO_INDEX_PARENT:Nie udało się dodać ograniczenia klucza obcego. Brakujący indeks dla ograniczenia

  3. nie mogę wyświetlić miniatury na ekranie, mam czysty biały ekran z trochę uszkodzonym obrazem w lewym górnym rogu

  4. Parametr „@myLeft” musi być zdefiniowany

  5. Jak znaleźć (odkodować) zapytanie PostgreSQL z pliku Wireshark?