Assuming a structure similar to yours:
CREATE TABLE IDENTIFICACAO_PESSOA
(
PESSOA_FK BIGINT,
CATEGORIA_IDENTIFICACAO_FK character varying(1)
);
With the following test data:
INSERT INTO IDENTIFICACAO_PESSOA ( PESSOA_FK, CATEGORIA_IDENTIFICACAO_FK ) VALUES ( 1 , 'B' );
INSERT INTO IDENTIFICACAO_PESSOA ( PESSOA_FK, CATEGORIA_IDENTIFICACAO_FK ) VALUES ( 2 , 'A' );
INSERT INTO IDENTIFICACAO_PESSOA ( PESSOA_FK, CATEGORIA_IDENTIFICACAO_FK ) VALUES ( 2 , 'B' );
INSERT INTO IDENTIFICACAO_PESSOA ( PESSOA_FK, CATEGORIA_IDENTIFICACAO_FK ) VALUES ( 2 , 'C' );
INSERT INTO IDENTIFICACAO_PESSOA ( PESSOA_FK, CATEGORIA_IDENTIFICACAO_FK ) VALUES ( 3 , 'X' );
INSERT INTO IDENTIFICACAO_PESSOA ( PESSOA_FK, CATEGORIA_IDENTIFICACAO_FK ) VALUES ( 4 , 'Y' );
Your query looks like this:
SELECT
DISTINCT
PESSOA_FK AS id_pessoa,
COUNT(1) AS qtd_categorias
FROM
IDENTIFICACAO_PESSOA
GROUP BY
PESSOA_FK
HAVING
COUNT(1) > 1;
SQL Fiddle: link