OK, same way as for the first example:
SELECT l.category, COUNT(*) AS Hits
FROM listing l INNER JOIN
statistic s ON l.avertid = s.advertid
GROUP BY l.category
ORDER BY COUNT(*) DESC
To include the ones with no hits...
SELECT l.category, COUNT(*) AS Hits
FROM listing l LEFT JOIN
statistic s ON l.avertid = s.advertid
GROUP BY l.category
ORDER BY COUNT(*) DESC