
Можете закончить select count(if(value = 1, 1, null)) as value1, count(if(value = 2, 1, null)) as value2 from table;?способов много . Лучшее соотношение затрат времени на программирование, быстродействия выбирать в зависимости от потребностей.
начни по KISS принципу.
делаешь два запроса к базе и вычитаешь один из другого.
вот только тип для пола текстовый - это толерантность ?
Хотя черт его знает может уже вместо булевого значения и так писать
и count() просто или count(id) пиши вместо COUNT( `Пол` )
Так правильнее
select count(if(value = 1, 1, null)) as value1, count(if(value = 2, 1, null)) as value2 from table;
Нужна их разница
sum( if( is_man, 1, -1 ))можно чуть-чуть оптимизировать: sum(if(value = 1, 1, if(value = 2, -1, 0)))