SQLite memiliki fungsi yang disebut sum()
dan fungsi lain yang disebut total()
. Kedua fungsi melakukan hal yang hampir sama – mereka mengembalikan jumlah semua nilai non-NULL dalam sebuah grup.
Tapi ada perbedaan halus antara kedua fungsi ini.
Perbedaannya terletak pada cara mereka menangani input NULL.
Perbedaan
Di sinilah kedua fungsi ini berbeda.
Jika tidak ada baris input non-NULL:
sum()
mengembalikan NULLtotal()
mengembalikan 0,0
Contoh
Berikut adalah contoh untuk menunjukkan perbedaan antara SQLite sum()
dan total()
fungsi.
SELECT
sum(NULL),
total(NULL);
Hasil:
sum(NULL) total(NULL) ---------- ----------- 0.0
Kolom pertama kosong, karena NULL.
Mengapa Perbedaannya?
Alasan memiliki dua fungsi yang melakukan hal yang sama kecuali untuk satu perbedaan ini adalah, sum()
sepenuhnya memenuhi standar. Standar SQL mengharuskan sum()
fungsi mengembalikan NULL ketika inputnya NULL.
Mengembalikan NULL mungkin sesuai standar, tetapi tidak terlalu berguna jika Anda mengharapkan angka.
total()
karena itu fungsi telah disediakan sebagai alternatif yang lebih berguna untuk sum()
.
Anda dapat memilih fungsi mana yang ingin Anda gunakan, bergantung pada bagaimana Anda ingin fungsi menangani nilai NULL (dan seberapa sesuai standar yang Anda inginkan).
Keputusan Anda mungkin juga dipengaruhi oleh seberapa portabel kode yang Anda inginkan. sum() tampaknya lebih umum digunakan nama fungsi di DBMS utama lainnya.