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

SQLite Sum() vs Total():Jaka jest różnica?

SQLite posiada funkcję o nazwie sum() i inną funkcję o nazwie total() . Obie funkcje robią prawie to samo — zwracają sumę wszystkich wartości innych niż NULL w grupie.

Ale istnieje subtelna różnica między tymi dwiema funkcjami.

Różnica polega na sposobie, w jaki obsługują wejścia NULL.

Różnica

Oto, gdzie te dwie funkcje się różnią.

Jeśli nie ma wierszy wejściowych innych niż NULL:

  • sum() zwraca NULL
  • total() zwraca 0.0

Przykład

Oto przykład pokazujący różnicę między SQLite sum() i total() funkcje.

SELECT 
  sum(NULL),
  total(NULL);

Wynik:

sum(NULL)   total(NULL)
----------  -----------
            0.0        

Pierwsza kolumna jest pusta, ponieważ ma wartość NULL.

Dlaczego różnica?

Powodem posiadania dwóch funkcji, które robią to samo, z wyjątkiem tej jednej różnicy, jest to, że sum() jest w pełni zgodny z normami. Standard SQL wymaga, aby sum() funkcja zwraca NULL, gdy jej dane wejściowe to NULL.

Zwrócenie wartości NULL może być zgodne ze standardami, ale nie jest szczególnie przydatne, jeśli oczekujesz liczby.

total() funkcja została zatem dostarczona jako bardziej użyteczna alternatywa dla sum() .

Możesz wybrać, której funkcji wolisz używać, w zależności od tego, jak chcesz, aby funkcja radziła sobie z wartościami NULL (i jak chcesz być zgodny ze standardami).

Twoja decyzja może również zależeć od tego, jak przenośny ma być twój kod. sum() wydaje się być częściej używaną nazwą funkcji w innych głównych DBMS.


  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 działa funkcja JulianDay() w SQLite

  2. Jak zaimplementować bazę danych SQLite do przechowywania obrazu bitmapowego i tekstu?

  3. SQLite CROSS JOIN z praktycznym przykładem

  4. Jak pobrać dwie odpowiedzi Json Json Object i Array

  5. Najlepszy sposób na zapisywanie obrazów pochodzących z serwera w Androidzie