Aulas do bloco

← Aulas

SQL e DadosAula 1514/09/20261h31

AT Looker Studio e SQL: GROUP BY, HAVING e ORDER BY

Retoma SELECT com WHERE, IN, LIKE e ORDER BY mais DISTINCT, GROUP BY com COUNT, SUM e AVG e HAVING das aulas do TP3 e da mini-faculdade. Destrava o AT em duas frentes: relatório de 4 páginas no Looker Studio sobre a base academia e exercícios de SQL 5 a 16 nas tabelas cursos, veículos e imóveis. Entrega final até dia 27 com reentrega até 2 de outubro em PDF único com links e PDFs do Looker Studio e do DeepNote com código.

O que foi falado

  1. AT em 2 partes e entrega em PDF único

    00:05:54

    A parte 1 é um relatório de 4 páginas no Looker Studio sobre a base academia. A parte 2 são os exercícios 5 a 16 de SQL nas tabelas de cursos, veículos e imóveis. O final é um PDF único com link e PDF do Looker Studio mais link e PDF do DeepNote com código, sem código o trabalho é devolvido. Todo mundo começa com nota máxima e perde ponto se não entregar, entregar errado ou fazer análise preguiçosa no exercício 4.

  2. Importar CSV via Google Sheets e checar tipo

    00:14:35

    O fluxo é subir o CSV no Google Sheets, limpar por lá e conectar a planilha como fonte no Looker Studio. O direto do CSV dá surpresa, então a planilha vira a fonte oficial. Depois confere o tipo de cada campo em Gerenciar fonte de dados, porque data-aula precisa estar como data para a série temporal funcionar e número precisa estar como número para somar.

  3. Relatório de 4 páginas com indicador, barras, pizza e temporal

    00:18:17

    A página 1 traz tabela com data-aula, unidade, modalidade, professor, inscritos e presentes mais cartões com total de inscritos e total de presentes. As outras usam barras de presentes por modalidade ou unidade, pizza por modalidade em número absoluto ou percentual e série temporal de presentes ao longo de data-aula. Fecha com filtros por unidade e modalidade mais controle de período por data-aula e o mesmo padrão de cores e títulos nas 4 páginas.

  4. SELECT com filtros, IN, AND/OR e ORDER BY

    00:30:17

    A base é SELECT colunas de FROM tabela com WHERE para ficar só com as linhas que passam no teste. Texto compara exato com = e <> entre aspas simples, como status <> 'cancelado', e número compara com >, <, >= e <=. AND afunila porque exige tudo verdadeiro, OR expande porque aceita qualquer uma, então mistura com parênteses e IN para lista, e fecha com ORDER BY coluna em ASC ou DESC, onde a primeira coluna manda.

    SQL
    SELECT estado, nome
    FROM alunos
    WHERE status <> 'cancelado'
    ORDER BY estado ASC;
  5. GROUP BY com COUNT, SUM, AVG e DISTINCT

    01:02:00

    GROUP BY reúne linhas por valores iguais nas colunas de agrupamento e permite resumir cada grupo. COUNT(*) conta linhas, SUM() soma valores numéricos, AVG() calcula a média e MIN()/MAX() encontram os extremos. DISTINCT elimina duplicatas do resultado nas colunas selecionadas; não é uma etapa obrigatória antes do agrupamento. Nos exemplos da aula, cada coluna não agregada do SELECT aparece também no GROUP BY.

    SQL
    SELECT plano, COUNT(*) AS total
    FROM alunos
    GROUP BY plano;
  6. WHERE filtra linha, HAVING filtra grupo e ROUND

    01:03:15

    WHERE filtra linhas antes da agregação, enquanto HAVING filtra os grupos resultantes, como HAVING COUNT(*) > 1. A expressão agregada do mesmo SELECT não pode ser colocada no WHERE. ROUND(media, 2) arredonda o valor; não garante a exibição de dois zeros finais. ORDER BY com várias colunas considera a coluna da esquerda primeiro e usa as seguintes para desempatar.

    SQL
    SELECT area, AVG(avaliacao) AS media
    FROM cursos
    WHERE status <> 'cancelado'
    GROUP BY area
    HAVING COUNT(*) > 1
    ORDER BY media DESC;

Perguntas que valem a pena

Como usar ORDER BY junto com GROUP BY?01:08:23

Dá para agrupar e ordenar na mesma consulta, como SELECT estado com COUNT(*) por estado usando GROUP BY estado e ORDER BY.

Preciso rodar a consulta toda hora porque os dados mudam?01:14:17

O momento de entrada é diferente da seleção, então uma nova matrícula muda o resultado da próxima consulta.

No ORDER BY com várias colunas, a primeira tem prioridade?01:15:31

Sim, o que vem primeiro manda, e sem ORDER BY o banco traz uma ordem de exibição que não é confiável.

O que é id_aluno na tabela de matrículas?01:26:42

É a coluna que referencia a tabela de alunos e prepara a junção futura para saber o nome.

Conceitos da aula

  • assessment
  • scorecard
  • SELECT
  • WHERE
  • ORDER BY
  • GROUP BY
  • HAVING
  • DISTINCT
  • COUNT
  • AVG
  • SUM
  • subquery

Reforce este assunto

7 exercíciosComeçar →