Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
nldj

Select count distinct group by

Recommended Posts

Tenho uma tabela que gravo o idioma e a fluência do candidato. Por ex:

 

Candidato         Idioma           Fluência

1                        Inglês            1

2                        Espanhol      3

3                        Francês        2

 

Quero saber quantos candidatos tem inglês, espanhol e francês básico, avançado e intermediário.

 

Para isso, eu faço o seguinte:

 

select Idioma,
COUNT(distinct(Candidato)) as Total, 
count(CASE WHEN Fluência = 1 THEN 'Básico' ELSE NULL END) as Básico, 
count(CASE WHEN Fluência = 2 THEN 'Intermediário' ELSE NULL END) as Intermediário, 
count(CASE WHEN Fluência = 3 THEN 'Avançado' ELSE NULL END) as Avançado 
from tabela
group by Idioma
 

O resultado é:

 

Idioma            Total          Básico        Intermediário       Avançado

Inglês              2               2                 0                         0

Espanhol        3                1                 1                         1

Francês          1                0                 1                          0

 

Porém, se tiver um registro duplicado, ou seja, de dois candidatos, se um aparecer 3 vezes e outro 2 vezes na tabela com o Inglês básico, o resultado vai ser assim:

 

Idioma            Total          Básico        Intermediário       Avançado

Inglês              2               5                 0                         0

Espanhol        3                1                 1                         1

Francês          1                0                 1                          0

 

Como eu faço nesse caso para contar somente os registros únicos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
Entre para seguir isso  

×
×
  • Criar Novo...