[size=xsmall]Toevoeging op 15/01/2016 14:09:30:[/size]
verklaring voor SUM(woonplaats != '')
het stuk tussen de ( ) is een vergelijking waar true of false uitkomt. als de waarde in de kolom woonplaats een lege string is, dan is het true, anders false.
True is ook wel te schrijven als 1, false als 0
In het gegeven voorbeeld is 2 maal de kolom Woonplaats voorzien van een waarde. (dat was tenminste zo voor de edit?)
dat levert dus 2 maal een 1 op. Die enen opgeteld levert je 2 op als totaal.
Dit werkt ook zo voor woonplaats = '' of woonplaats = 'Amsterdam'
Zou "leeg" als NULL opgeslagen staan, dan werkt het ook met count(), voor het geval "is er iets ingevuld"
Daarbij is het hier gerechtvaardigd om het resultaat op te halen zonder eerst te controleren of er resultaten zijn -wat eigenlijk wel gebruikelijk is- omdat, indien je enkel een SUM() of soortgelijke functie aanroept middels een SELECT statement, je altijd exact één resultaat terugkrijgt, of er nu "resultaten" zijn, of niet - je krijgt altijd één resultaatrij terug.