ho avuto il tuo stesso problema venerdì al lavoro, ho risolto così (mysql 4 e 5)

codice:
SELECT  COUNT(DISTINCT a.id) AS active, 
        COUNT(DISTINCT b.id) AS postponed, 
        COUNT(DISTINCT c.id) AS draft 
FROM    news_articles AS a, 
        news_articles AS b, 
        news_articles AS c 
WHERE   a.type = 1 
AND     b.type = 2 
AND     c.type = 3