Дублирует общее кол-во строк, а должно показывать по отдельному значению. К примеру в 1й строке 1го столбца "Высшее" а во втором столбце кол-во записей из второй таблицы, где происходит совпадение
select sp2.NAIM,
(select COUNT(*)
from KDK
inner join kdk1 on kdk.N_KDK=kdk1.N_KDK
inner join SP2 on sp2.KOD_N=KDK1.KK02
where kdk1.KK02=sp2.KOD_N and sp2.SPR='k02' and KDK.KPOL=1) as Male
from SP2 where sp2.SPR='k02'