La même avec MariaDB (ou MySQL):
SELECT type, SUM((place = 'home')), SUM((place = 'school')), … FROM reports GROUP BY type
Comme indiqué ici: http://stackoverflow.com/a/17086564, c'est parce que true casté en int vaut 1 (et false vaut 0)
« Bonjour, je suis un fanboy PostgreSQL alors tous les moyens sont bons, même les plus pourris, pour trouver un moyen spectaculaire de descendre en flamme ses concurrents. »
Bref, il est critiqué ici le fait pour MySQL (et du coup MariaDB aussi) de convertir les valeurs de type invalides ou d'attribuer une valeur par défaut dans les champs NOT NULL et ce sans prévenir.
Il faut attendre les 5 dernière secondes de la vidéo pour qu'il déclare « Il fait ça par défaut, mais ça peut se changer »
Évidemment, comme il veut juste basher MySQL, il va pas vous donner la solution pourtant très simple :
Rajouter la ligne suivante dans my.cnf
[mysqld]
sql_mode = STRICT_ALL_TABLES
Ou encore envoyer la requête suivante:
SET sql_mode = STRICT_ALL_TABLES;
Et voila, MySQL se comportera de manière normale. (Oui évidemment, le fait que ce ne soit pas comme ça par défaut EST un problème ; ça justifie un switch ? Non.)