Contar Valores Distintos SQL PHP (Para ninjas e faixas preta em SQL)

,

Pessoal,
Preciso de uma força, quebrando a cabeça aqui.

Como faria um query pra contar os valores abaixo.
Preciso que a query retorne o total de dentro quando o nome for igual;
Exemplo: ALEX e PATY TEM 4 REGISTRO NO BD, cada, sendo que no campo valida 3 estão com o valor = dentro . Fazendo manual o valor seria igual 2.

NOME | MES | VALIDA
ALEX  | JAN  | DENTRO
ALEX  | FEV  | DENTRO
ALEX  | MAR | DENTRO
ALEX  | ABR  | FORA
PATY  | JAN  | DENTRO
PATY  | FEV  | DENTRO
PATY  | MAR | DENTRO
PATY  | ABR  | FORA

Não deu para entender.
Fazendo manual o valor seria igual a 2? Não seria 3?
É isso?

Nao porque a contagem teria que agrupar o nome.

Ainda não deu para entender.
Levando em consideração os registros

NOME | MES | VALIDA
ALEX | JAN | DENTRO
ALEX | FEV | DENTRO
ALEX | MAR | DENTRO
ALEX | ABR | FORA
PATY | JAN | DENTRO
PATY | FEV | DENTRO
PATY | MAR | DENTRO
PATY | ABR | FORA

Quais seria o resultado esperado?

O esperado seria 2.
Porque existe dois nomes que possui no campo VALIDA o valor “DENTRO”;

Eu preciso que a query retorne o total de nomes que possui 3 “DENTRO” no campo valida.

NOME | MES | VALIDA
ALEX | JAN | DENTRO
PATY| JAN | DENTRO

Ai sua consulta, faz um teste ai.

SELECT nome,mes,valida FROM tab
WHERE valida = 'DENTRO’
GROUP BY nome
HAVING COUNT(valida) = 3

Exatamente 3? Ou 3 ou mais?

 SELECT nome, valida 
   FROM tabela
  WHERE valida = 'DENTRO'
  GROUP BY nome,  valida
 HAVING COUNT(*) >= 3

Funcionou!!! Perfeito. Obrigado! Valeu msm

Funcionou!!! Perfeito. Obrigado! Valeu msm!

Só mais uma duvida.
E como ficaria a query para trazer todos os registros sem agrupar por nome?
Tentei dessa forma e nao funcionou:
SELECT nome,mes,valida FROM tab
WHERE valida = 'DENTRO’
and nome
HAVING COUNT(valida) = 3