Black Friday 20% de desconto
Tá acabando

0

dias

00

hrs

00

min

00

seg

Artigos > Data Science

2 queries e uma conta final em um único SQL

Guilherme Silveira
Guilherme Silveira

Quantos usuários do Alura já compraram livros na Casa do Código e quantos não? Fácil, executa duas queries, cria uma stored procedure (aiiiiiii meu coração), devolve um divido pelo outro:


select count(comprouNaCDC) as compraram 
from Aluno 
where comprouNaCDC = 1; > 200

select count(comprouNaCDC) as nao_compraram 
from Aluno 
where comprouNaCDC = 0; > 300

E uma stored equivalente a:


porcentagem = compraram / (compraram + nao_compraram) > 0.40

Como diz minha sobrinha de 2 anos: -Uxi! E sai correndo, fugindo de medo.

Poderia agrupar, e fazer a divisão:


select count(comprouNaCDC), comprouNaCDC 
from Aluno 
group by comprouNaCDC; > 200, 1 > 300, 0

E usar a mesma fórmula em procedure ou programação: uxi.

Podemos só contar o total :)


select count(*) as total from Alunos; > 500

Se o seu banco usa 0 ou 1 para marcar quem comprou, soma todo mundo:


select sum(comprouNaCDC) as compraram 
from Alunos; > 200

Calma lá, é só dividir quem comprou pelo total. Uma unica query:


select sum(comprouNaCDC) / count(*) as porcentagem 
from Alunos; > 0.40

Tá lá, sem subquery, sem procedure, sem temporary table, doidice.

Desafio: e se o campo não fosse 0 e 1? Como você transformaria uma string 'S' e 'N' para a query acima funcionar? *CASO* você tenha uma sugestão, compartilhe!

Gostou do post? Quer aprender mais? Que tal dar uma olhada em nossos cursos de Banco de Dados?

ps: Essa boa prática é a primeira parte de uma super prática animal sugerida pelo aluno do Alura, Silvio Silva!

Leia também:

Artigos de Tecnologia e Negócios > Data Science
Tá acabando

0

dias

00

hrs

00

min

00

seg

  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

  • Desconto 20%

Premium

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75 R$60
à vista R$900 R$720
Matricule-se

Premium Plus

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100 R$80
à vista R$1.200 R$960
Matricule-se

Max

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120 R$96
à vista R$1.440 R$1.152
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas