You could use a single recordset if you wanted to create a more complex SQL statement like:
SELET COUNT(IF(PgTypeID= 5, 1, NULL)) AS Type5Count, COUNT(IF(PgTypeID= 2, 1, NULL)) AS Type2Count, * FROM...
But I'm not sure if it would be any more efficient than separate recordsets, so I still think adding recordsets to get the counts would be easier. If it did save any time it would be milliseconds and probably not worth the extra effort.