Hola jotaincubus:
No sé si entendí correctamente qué es lo que quieres hacer, pero veamos si podemos ayudarte. Siempre que utilices una función de agregación (COUNT, MAX, MIN, AVG, etc.) junto con algún otro campo en el SELECT es necesario agregar un GROUP BY, poniendo todos los campos que intervienen en el SELECT...
Prueba con esto:
Código:
SELECT
grupos.id_grupos,
grupos.grp_nombre,
grupos.grp_descripcion,
grupos.grp_f_ingreso,
grupos.grp_tipo_ingreso,
acceso.acc_seudonimo,
perfil.tp_nombre,
subperfil.tsp_nombre,
COUNT(*) total
FROM tbl_grupos grupos
INNER JOIN tbl_acceso acceso
ON grupos.id_acceso = acceso.id_acceso
INNER JOIN tbl_tipo_perfil perfil
ON grupos.id_tipo_perfil = perfil.tp_codigo
INNER JOIN tbl_tipo_sub_perfil subperfil
ON grupos.id_tipo_sub_perfil = subperfil.tsp_codigo AND grupos.id_tipo_perfil = subperfil.tp_codigo
GROUP BY
grupos.id_grupos,
grupos.grp_nombre,
grupos.grp_descripcion,
grupos.grp_f_ingreso,
grupos.grp_tipo_ingreso,
acceso.acc_seudonimo,
perfil.tp_nombre,
subperfil.tsp_nombre
Si necesitas agregar alguna condición WHERE a tu consulta la debes colocar antes del GROUP BY. Haz la prueba y nos comentas si te sirvió el código o no.
Saludos
Leo.