Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola Pessoal,
Estou com uma duvida, seguinte:
Tenho uma tabela onde contes dados de varias AVALIAÇÕES (teste on-line), e estou criando um relatorio para mostrar as questões que os usuarios tem mais dificuldade, veja:
SELECT pergunta,
COUNT(acertou='S') AS total_acertos,
COUNT(acertou='N') AS total_erros
FROM avaliacoes_respostas
WHERE acertou<>'' AND data_resposta BETWEEN '2010-02-01' AND '2010-12-01'
GROUP BY pergunta ORDER BY total_erros DESC
Na parte dos COUNT's ele me retorna como se contasse todos os registros, tipo assim: COUNT(acertou') mas na verdade eu quero contar usando as flags, ou seja, quantos acertaram (acertou='S') e quantos erraram (acertou='N').
Alguem pode dar uma dica? Favor.
Muito obrigado!
Quem precisar, ficou assim:
//## TOTAL DE ACERTOS E ERROS POR PERGUNTA ##
SELECT pergunta,
SUM( CASE WHEN acertou = 'S'
THEN 1
ELSE 0
END ) total_acertos,
SUM(
CASE WHEN acertou = 'N'
THEN 1
ELSE 0
END ) total_erros
FROM avaliacoes_respostas
WHERE acertou<>'' AND data_resposta BETWEEN '2010-02-01' AND '2010-12-01'
GROUP BY pergunta ORDER BY total_erros DESC
Pega 'ae':
SELECT
SUM(
CASE WHEN acertou = 'S'
THEN 1
ELSE 0
END ) total_acertos,
SUM(
CASE WHEN acertou = 'N'
THEN 1
ELSE 0
END ) total_erros
FROM ...