SQL having e video games

SQL having e video games
Guilherme Silveira
Guilherme Silveira

Compartilhe

Tenho um banco de dados com informações sobre vendas de jogos. Gostaria de saber como estão as vendas por produtora, então agrupo como de costume:


SELECT produtora, count(*) as total 
    FROM vendas 
    GROUP BY produtora;

> Sony, 500 > ... 24 linhas ... 
> Ubisoft, 1300 > ... 30 linhas ... 
> Microsoft, 400 > ... 27 linhas ...

Mas repara que tem uma dezena de resultados "menores" que não estou tão interessado. Só queremos quem vendeu mais de 500?

Banner da Escola de Data Science: Matricula-se na escola de Data Science. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

SELECT produtora, 
    count(*) as total 
    FROM vendas 
    WHERE sum(quantidade) > 500 
    GROUP BY produtora;

> No, no, no no

O banco de dados não aceita resultados de funções de agregação na cláusula "where", pois ela é usada para selecionar os registros...antes de agregar!

Subconsulta neles!


SELECT produtora, total 
    FROM ( SELECT produtora, count(*) as total 
        FROM vendas 
        GROUP BY produtora 
        ) as temp 
    WHERE total > 500;

Resolvido? Sim, mas com uma "volta ao mundo".

Será que o SQL já não foi espertinho pra permitir "queriar" o resultado de uma agregação? Queria dizer que dentre os grupos que formei, aqueles que tem mais de 500, em inglês: having.


SELECT produtora, count(*) as vendas 
    FROM games 
    GROUP BY produtora 
    HAVING vendas > 500;

> Ubisoft | 1300

E se quer se aprofundar em SQL e banco de dados, vale conhecer nossos cursos de Oracle e cursos de SQL da Alura.

Guilherme Silveira
Guilherme Silveira

Co-fundador da Alura, da Caelum e do GUJ. Com 18 anos de ensino nas áreas de programação e dados, criou mais de 100 cursos. Possui formação em engenharia de software, viés matemático e criativo, além de ser medalhista de ouro em competições nacionais de computação, tendo representado o Brasil nos mundiais. Participante de comunidades open source e de educação em tecnologia, tendo escrito 7 livros. Faz mágica e fala coreano no tempo livre.

Veja outros artigos sobre Data Science