Esta sería una opción:
IF(
condicion, verdadero, falso), devuelve
verdadero si la
condicion es TRUE, sino devuelve
falso.
SUM() suma los valores indicados, donde el valore devuelto no sea NULL. En este caso va sumando 1 ó 0, contando las alternativas.
COUNT() cuenta todos los valores no NULL de un campo.
INNER JOIN devuelve sólo los registros que coincidan en la condición ON.
Los alias son precisamente eso: Alias de un nombre de base de datos, de tabla o de campo, puestos sea para cambiar el encabezado devuelto, para que sea útil, o bien para reducir la longitud de las sentencias haciendo más clara y comprensible la escritura. Originalmente requerían la cláusulas AS para indicar el alias. Actualmente es opcional. El sólo poner una palabra a continuación es suficiente.
Atención:
Los alias de los campos no pueden ser usados para referirse a ellos en la cláusula WHERE.