Consulta SQL com registros únicos

11/03/2015

Pessoal, boa noite

Tentei pesquisar no fórum, encontrei vários posts sobre consulta SQL mas não consegui criar uma que me atenda.
Bom, basicamente eu tenho uma tabela com 3 campos:

ID
Nome
Resposta


O campo ID se repete por várias vezes na tabela (sempre com o mesmo nome, mas com respostas diferentes ou em branco).
Primeiramente gostaria de pegar o número de registros únicos de IDs da tabela.

Consegue fazendo da seguinte maneira:

SELECT COUNT(DISTINCT(ID))
FROM
TABELA

Ele me retorna o número total de registros únicos, perfeitamente.
Depois eu adicionei o nome

SELECT COUNT(DISTINCT(ID)), NOME
FROM
TABELA
GROUP BY NOME

Ele me retorna o total de registros únicos por nome. Perfeito.

Agora vem o complicador. A coluna "resposta" nem sempre está preenchida e eu preciso do total de respostas.
Separadamente eu consigo fazer:

SELECT COUNT(RESPOSTA)
FROM
TABELA

Colocando o nome:

SELECT COUNT(RESPOSTA), NOME
FROM
TABELA
GROUP BY NOME

Agora, basicamente o que eu preciso é juntar os resultados num só select, total de IDs únicos e total de respostas por nome.

Segue um exemplo da base de dados:

ID NOME RESPOSTA
1 JOAO
2 JOAO
3 ANTONIO
3 ANTONIO
3 ANTONIO 5
4 JOAO
4 JOAO 5
5 ANTONIO
6 JOAO
7 MATEUS
7 MATEUS
7 MATEUS
7 MATEUS 5

Gostaria de um select que traga como resultado:

NOME QTDE IDS UNICOS QTDE RESPOSTA
JOAO 4 1
ANTONIO 2 1
MATEUS 1 1



Alguma sugestão?

Obrigado!