SQL Child / Trusting The Answer
Absent Is Not Zero And Not Blank
A missing value is a statement that nothing is known, and it behaves differently from every value you can type.
When a value is absent from a record, it does not mean nought and it does not mean empty text. It means unknown. That sounds like a philosophical nicety and it has thoroughly practical consequences, because unknown things cannot be compared. If you ask whether an absent value is greater than one hundred, the honest answer is not yes and not no, it is that the comparison cannot be made. Records with absent values therefore fall out of conditions that beginners expect to catch them, in both directions, and they do so without any notice at all.
This produces a result that reliably astonishes people the first time. You split your records into those above a threshold and those below it, you count both groups, and the two counts do not add up to your total. Nothing is broken. The records with absent values were excluded from both groups, because they could not honestly be placed in either. The moment you understand this, a whole class of baffling discrepancies becomes explicable, and you learn to ask, immediately, whether the gap is exactly the number of records with nothing recorded.
Averages behave the same way and it matters more. An absent value is not treated as nought and pulled into the calculation. It is left out entirely, so your average is calculated over fewer records than you believe. Whether that is right depends entirely on your question. If the value is absent because nothing was ever recorded, excluding it is honest. If it is absent because nothing happened, and nothing happening genuinely means nought, then excluding it inflates your average. Only you can tell which, and only if you ask.