Вы можете использовать функцию NULLIF()
.
SELECT name,
NULLIF(COUNT(IF(stat='open',1, NULL)), 0) 'open',
NULLIF(COUNT(IF(stat='close',1, NULL)), 0) 'close',
NULLIF(COUNT(IF(stat='all',1, NULL)), 0) 'all',
NULLIF(COUNT(IF(stat='reopen',1, NULL)), 0) 'reopen',
NULLIF(COUNT(IF(stat='finish',1, NULL)), 0) 'finish'
FROM dashboard
group by name
order by name = 'Party' desc
NULLIF()
возвращает первое значение, если оно не равно второму значению, затем возвращается NULL
.
Кстати, вы можете упростить COUNT(IF(stat='xxx', 1, NULL))
до SUM(stat='xxx')
.