SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite Sum() срещу Total():Каква е разликата?

SQLite има функция, наречена sum() и друга функция, наречена total() . И двете функции правят почти едно и също нещо – връщат сумата от всички стойности, различни от NULL в групата.

Но има фина разлика между тези две функции.

Разликата е в начина, по който обработват NULL входове.

Разликата

Ето къде се различават тези две функции.

Ако няма входни редове, различни от NULL:

  • sum() връща NULL
  • total() връща 0.0

Пример

Ето пример за демонстриране на разликата между SQLite sum() и total() функции.

SELECT 
  sum(NULL),
  total(NULL);

Резултат:

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

Първата колона е празна, защото е NULL.

Защо разликата?

Причината да има две функции, които правят едно и също нещо, с изключение на тази разлика е, че sum() е напълно съвместим със стандартите. SQL стандартът изисква sum() функция връща NULL, когато нейният вход е NULL.

Връщането на NULL може да е съвместимо със стандартите, но не е особено полезно, ако очаквате число.

total() следователно функцията е предоставена като по-полезна алтернатива на sum() .

Можете да изберете коя функция предпочитате да използвате, в зависимост от това как искате функцията да работи с NULL стойности (и колко съвместими със стандартите предпочитате да бъдете).

Решението ви може да бъде повлияно и от това колко преносим искате да бъде кодът ви. sum() изглежда е по-често използвано име на функция в други основни СУБД.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. близо до грешка в synatx (код 1) вмъкнете Android SQLite

  2. IllegalStateException:базата данни вече е затворена (с помощта на ViewPager)

  3. Включване на низове в единични кавички в резултатите от заявка на SQLite

  4. Върнете края на месеца в SQLite

  5. Как да изтрия конкретни редове в SQLite база данни