W MySQL funkcja SUM() funkcja agregująca zwraca sumę danego wyrażenia.
Może być również użyty do zwrócenia sumy wszystkich odrębnych (unikalnych) wartości w wyrażeniu.
Składnia
Składnia wygląda tak:
SUM([DISTINCT] expr) [over_clause] Przykładowe dane
Załóżmy, że mamy tabelę o nazwie Products z następującymi danymi:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products; Wynik:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | NULL | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Przykład
Możemy użyć następującego zapytania, aby uzyskać sumę wszystkich cen.
SELECT SUM(ProductPrice)
FROM Products; Wynik:
389.70
Tutaj informacje o cenie są przechowywane w ProductPrice kolumna, więc przekazujemy to jako argument do SUM() funkcja, która następnie oblicza sumę i zwraca wynik.
Wartości puste
SUM() funkcja ignoruje wszelkie wartości NULL. W naszej przykładowej tabeli powyżej młot ma wartość NULL w swojej ProductPrice kolumna, ale zostało to zignorowane w obliczeniach.
Przefiltrowane wyniki
SUM() funkcja działa na wierszach zwróconych przez zapytanie. Więc jeśli filtrujesz wyniki, wyjście SUM() odzwierciedli to.
SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001; Wynik:
78.72
W tym przypadku 78,72 to suma wszystkich produktów oferowanych przez określonego dostawcę.
DISTINCT Słowo kluczowe
Możesz użyć DISTINCT słowo kluczowe z SUM() aby obliczyć tylko różne wartości. Oznacza to, że jeśli istnieją jakiekolwiek zduplikowane wartości, są one traktowane jako jedna wartość.
Przykład:
SELECT SUM(DISTINCT ProductPrice)
FROM Products; Wynik:
363.71
Nasz stół zawiera dwie pozycje w tej samej cenie (wkrętak leworęczny i śrubokręt praworęczny mają cenę 25,99). DISTINCT słowo kluczowe powoduje, że obie te wartości są traktowane jako jedna.
Funkcje okien
Możemy użyć OVER klauzula z SUM() funkcja, aby utworzyć funkcję okna. Zobacz SQL SUM() dla początkujących na przykład.