Hola de nuevo diegohugogallego:
Código:
SUM(IF(titulo != 'hola', 1, 0)) total_no_hola
Esto es simplemente un contador... internamente lo que hace es asignarle un 1 a aquellos registros que cumplen una condición y un cero a los que no, es decir, observa cómo se comporta la consulta sin el sum:
Código MySQL:
Ver original+---------+--------+
| usuario | titulo |
+---------+--------+
| juan | uno |
| juan | hola |
| juan | dos |
| mateo | hola |
| marco | juan |
+---------+--------+
mysql
> SELECT usuario
, titulo
, -> IF(titulo
= 'hola', 1, 0) total_hola
, -> IF(titulo
!= 'hola', 1, 0) total_no_hola
-> WHERE usuario
= 'juan'; +---------+--------+------------+---------------+
| usuario | titulo | total_hola | total_no_hola |
+---------+--------+------------+---------------+
| juan | uno | 0 | 1 |
| juan | hola | 1 | 0 |
| juan | dos | 0 | 1 |
+---------+--------+------------+---------------+
de tal suerte que si sumas (SUM) el número de 1's de la columna total_hola te da el resultado esperado, lo mismo para la columna de no_hola.
Espero que con esto haya quedado un poco más claro.
Saludos
Leo.