Selecting COUNT(*) with DISTINCT
Count all the DISTINCT program names by program type and push number DISTINCT COUNT(*) will return a row for each unique count. What you want is COUNT(DISTINCT <expression>): evaluates expression for each row in a group and returns the number of unique, non-null values.