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
AT em 2 partes e entrega em PDF único
00:05:54A 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.
Importar CSV via Google Sheets e checar tipo
00:14:35O 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-aulaprecisa estar como data para a série temporal funcionar e número precisa estar como número para somar.Relatório de 4 páginas com indicador, barras, pizza e temporal
00:18:17A página 1 traz tabela com
data-aula,unidade,modalidade,professor,inscritosepresentesmais 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 dedata-aula. Fecha com filtros porunidadeemodalidademais controle de período pordata-aulae o mesmo padrão de cores e títulos nas 4 páginas.
00:30:17SELECTcom filtros,IN,AND/OReORDER BYA base é
SELECTcolunas deFROMtabela comWHEREpara ficar só com as linhas que passam no teste. Texto compara exato com=e<>entre aspas simples, comostatus <> 'cancelado', e número compara com>,<,>=e<=.ANDafunila porque exige tudo verdadeiro,ORexpande porque aceita qualquer uma, então mistura com parênteses eINpara lista, e fecha comORDER BYcoluna emASCouDESC, onde a primeira coluna manda.SELECT estado, nome FROM alunos WHERE status <> 'cancelado' ORDER BY estado ASC;
01:02:00GROUP BYcomCOUNT,SUM,AVGeDISTINCTGROUP 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.
SELECT plano, COUNT(*) AS total FROM alunos GROUP BY plano;
01:03:15WHEREfiltra linha,HAVINGfiltra grupo eROUNDWHERE 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.
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
- HAVING e DISTINCT com GROUP BYSQL e Dados · trilha, etapa 9
- Agregação com GROUP BY: SUM, COUNT, AVG, MIN e MAXSQL e Dados · trilha, etapa 8
- ORDER BY: ordenação com ASC e DESCSQL e Dados · trilha, etapa 7