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

Obliczenia Mysql w instrukcji select

Ogólnie rzecz biorąc, SQL nie był tak naprawdę przeznaczony do generowania „ruchomych sum”, tak jak sobie tego życzysz. Inne RDBMS wprowadziły zastrzeżone rozszerzenia w celu dostarczania funkcji analitycznych, które umożliwiają tego rodzaju obliczenia, ale MySQL nie ma takich funkcji.

Zamiast tego, ogólnie rzecz biorąc, ma cztery opcje. W dowolnej kolejności:

  1. Gromadź bieżącą sumę w swojej aplikacji, gdy przeglądasz zestaw wyników;

  2. Zmień swój schemat, aby śledzić bieżące sumy w bazie danych (szczególnie przydatne w sytuacjach takich jak ta, gdzie nowe dane są zawsze dołączane „na końcu”);

  3. Grupuj samodołączenie:

    SELECT   a.Sale_Date,
             SUM(a.Stock_Delivered)                AS Stock_Delivered,
             SUM(a.Units_Sold)                     AS Units_Sold,
             SUM(b.Stock_Delivered - b.Units_Sold) AS `Stock Balance`
    FROM     sales_report a
        JOIN sales_report b ON b.Sale_Date <= a.Sale_Date
    GROUP BY a.Sale_Date
    
  4. Zbierz bieżącą sumę w zmiennej użytkownika :

    SELECT   Sale_Date,
             Stock_Delivered,
             Units_Sold,
             @t := @t + Stock_Delivered - Units_Sold AS `Stock Balance`
    FROM     sales_report, (SELECT @t:=0) init
    ORDER BY Sale_Date
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy funkcje matematyczne w MySQL są szybsze niż PHP?

  2. Błąd składni MYSQL - funkcja Codeigniter do obliczania kosztów

  3. Baza danych wyszukiwania PDO za pomocą LIKE

  4. #1136 – Liczba kolumn nie odpowiada liczbie wartości w wierszu 1

  5. Przywróć strukturę tabeli z plików frm i ibd