SELECT stkno as st, sum((if(status='Done',1,0)) as done, sum((if(status='inprocess',1,0)) as inprocess, sum((if(status='pending',1,0)) as pending from partners_downloads pd group by stkno order by done desc SELECT DISTINCT stkno as st, (SELECT COUNT(`stkno`) FROM partners_downloads WHERE `status` = 'Done' AND stkno = st GROUP BY stkno) as `done`, (SELECT COUNT(`stkno`) FROM partners_downloads WHERE `status` = 'InProcess' AND stkno = st GROUP BY stkno) as `inprocess`, (SELECT COUNT(`stkno`) FROM partners_downloads WHERE `status` = 'Pending' AND stkno = st GROUP BY stkno) as `pending` FROM partners_downloads pd ORDER BY `done` DESC