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` DESCTABLE STRUCTURE:int did (11)int uid (11)varchar stkno (100)varchar status (100)datetime addeddatetime changed