O te hemos entendido mal o no te explicas bien ( lo primero, seguro
).
He vuelto a leer la duda, y con mi consulta debiera salir perfectamente la información que quieres.
Código SQL
[-]SELECT DIR.COD_DIRECCION, COUNT(DIR.C_CONT) AS VECES
FROM DIRECCIONES DIR, DIR_CAT, CATEGORIAS CAT
WHERE
DIR.COD_DIRECCION = DIR_CAT.ID_DIR AND
DIR_CAT.ID_CAT = CAT.ID_CATEGORIA
GROUP BY DIRECCIONES.COD_DIRECCION
HAVING COUNT(DIRECCIONES.C_CONT) > 1
Te tiene que salir esto ( siempre que tengas registros repetidos ).
COD_DIRECCION, VECES
uno,2
dos,3
cuatro, 5
Si quieres ir filtrando, prueba quitando la clausula HAVING
Código SQL
[-]SELECT DIR.COD_DIRECCION, COUNT(DIR.C_CONT) AS VECES
FROM DIRECCIONES DIR, DIR_CAT, CATEGORIAS CAT
WHERE
DIR.COD_DIRECCION = DIR_CAT.ID_DIR AND
DIR_CAT.ID_CAT = CAT.ID_CATEGORIA
GROUP BY DIRECCIONES.COD_DIRECCION
COD_DIRECCION, VECES
uno,2
dos,3
tres,1
cuatro, 5
cinco,1
seis,1
Observa que he quitado de la consulta el parámetro Q que tú incluías, que puede ser el motivo de que no te funcione. Aunque realmente és lo mismo que no funcione a que no te salga la información que quieres.
Suerte y un saludo