SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak działa SQLite Sum()

SQLite sum() funkcja zwraca sumę wszystkich wartości innych niż NULL w grupie.

Jeśli nie ma wartości innych niż NULL, zwraca NULL.

Ta funkcja zasadniczo umożliwia dodanie wszystkich wartości w zestawie wyników lub w tabeli.

Przykład

Oto przykład demonstrujący jego użycie.

SELECT sum(Price) FROM Products;

Wynik:

738.22

Ten przykład jest prawdopodobnie bez znaczenia, jeśli nie widzisz rzeczywistych wartości w tabeli.

Oto zapytanie, które zwraca wszystkie wiersze w tej tabeli.

SELECT * FROM Products;

Wynik:

ProductId   ProductName            Price     
----------  ---------------------  ----------
1           Blue Widgets (6 Pack)  389.45    
2           Widget Holder          139.5     
3           Widget Opener          89.27     
4           Foobar Set             120.0     
5           Red Widget                    

Więc sum() funkcja po prostu dodała wszystkie wartości w Cenie kolumna.

Zauważ, że cena ostatniego wiersza wynosi NULL. W porządku. sum() funkcja po prostu dodaje wszystkie wartości inne niż NULL.

Wartości NULL

Jeśli nie ma wartości innych niż NULL, wynikiem jest NULL.

SELECT sum(Price) 
FROM Products
WHERE ProductId = 5;

Wynik:

      

(To celowo jest puste, ponieważ zwróciło NULL).

Różni się to od sposobu, w jaki SQLite total() funkcja zajmuje się wartościami NULL (zwraca 0.0). Obie sum() i total() zrób to samo, z wyjątkiem tej różnicy.

Mniejszy zestaw wyników

Pierwszy przykład dodał wszystkie wiersze w tabeli. Ale to nie musi być cały stół. Jak widać w przykładzie „NULL”, możesz również użyć WHERE klauzula, aby dodać podzbiór wartości w tabeli.

Oto kolejny przykład, w którym użyto WHERE klauzula.

SELECT sum(Price) 
FROM Products
WHERE ProductId < 3;

Wynik:

528.95

Tym razem dodaje wartości różne od NULL, więc otrzymuję wynik inny niż NULL.

Oto kolejny, który filtruje według tej samej kolumny, którą dodaję.

SELECT sum(Price) 
FROM Products
WHERE Price > 100;

Wynik:

648.95

Wejścia niebędące liczbami całkowitymi

Jeśli jakiekolwiek dane wejściowe nie są liczbą całkowitą ani NULL, to sum() zwraca wartość zmiennoprzecinkową, która może być przybliżeniem do prawdziwej sumy.

W takich przypadkach możesz uzyskać nieoczekiwane wyniki.

Poniżej znajduje się przykład, który próbuje dodać kilka numerów faksów.

Najpierw spójrzmy na listę numerów faksów.

SELECT Fax FROM Customer 
WHERE Fax IS NOT NULL;

Wynik:

Fax               
------------------
+55 (12) 3923-5566
+420 2 4172 5555  
+55 (11) 3033-4564
+55 (11) 3055-8131
+55 (21) 2271-7070
+55 (61) 3363-7855
+1 (780) 434-5565 
+1 (604) 688-8756 
+1 (650) 253-0000 
+1 (425) 882-8081 
+1 (212) 221-4679 
+1 (408) 996-1011 

Oto, co się stanie, jeśli spróbuję je dodać.

SELECT sum(Fax) 
FROM Customer;

Wynik:

701.0 

W tym przypadku wydaje się, że dodano wszystkie przedrostki.

Oto, co się stanie, jeśli użyję sum() na kolumnie ciągów.

SELECT sum(ProductName) 
FROM Products;

Wynik:

0.0

DISTINCT Słowo kluczowe

Możesz dodać DISTINCT słowo kluczowe, aby dodać tylko różne wartości. Aby to zrobić, użyj sum(DISTINCT X) gdzie X to nazwa kolumny.

Zobacz, jak dodać tylko odrębne wartości za pomocą SQLite Sum() na przykład.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zapisać wartości rzeczywiste SQLite w wartościach Java BigDecimal?

  2. SQLite nie ma takiej kolumny

  3. SQLite — jakakolwiek różnica między ograniczeniem tabeli UNIQUE a ograniczeniem kolumny UNIQUE?

  4. funkcja sprawdzająca, czy SQLite używa journal_mode=WAL lub journal_mode=DELETE

  5. Wstaw lub zaktualizuj Androida SQLite