ANSI SQL standart tanımlar (bölüm 6.5, ayarlanan fonksiyon şartname) boş sonuç kümeleri üzerinde toplama işlevleri için aşağıdaki davranış:
COUNT(...) = 0
AVG(...) = NULL
MIN(...) = NULL
MAX(...) = NULL
SUM(...) = NULL
AVG, MIN ve MAX için NULL döndürmek mükemmel bir anlam ifade eder, çünkü boş bir setin ortalama, minimum ve maksimum değerleri tanımsızdır.
Sonuncusu ise rahatsız ediyor beni: Matematiksel olarak boş bir setin SUM iyi tanımlanır: 0
. 0 kullanarak , ilave durumun nötr elemanı , temel durum olarak her şeyi tutarlı kılar:
SUM({}) = 0 = 0
SUM({5}) = 5 = 0 + 5
SUM({5, 3}) = 8 = 0 + 5 + 3
SUM({5, NULL}) = NULL = 0 + 5 + NULL
Tanımlanması SUM({})
olarak null
temelde "hayır" Satırları başkalarıyla sığmayan özel bir durum yapar:
SUM({}) = NULL = NULL
SUM({5}) = 5 != NULL + 5 (= NULL)
SUM({5, 3}) = 8 != NULL + 5 + 3 (= NULL)
Yaptığım seçimin (NUM OLMAKTAN) kaçırmış olduğumun belirgin bir avantajı var mı?