Array
(
)

Consulta SQL com registros únicos

Luiz Carlos
   - 11 mar 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!