SQL para Análise de Dados

Alex Souza
7 min readApr 12, 2022

--

Para quem esta começando a carreira ou migrando para a área de dados, seja como engenheiro de dados, analista de dados ou cientista de dados, esse é um bom guia inicial de estudos, pois lhe mostrará os principais comandos que são utilizados com mais frequência no dia a dia de um analista de dados (no caso Eu kkk).

80% dos resultados vêm de 20% das ações — concentre-se nas coisas importantes

Consultar dados

Essa habilidade consiste na capacidade de consultar dados contidos em tabelas (não apenas em tabelas) nas mais diversas Fontes de Dados (consulte na seção Classificação de dados (Data Classification)). Em grande parte das vezes, estas consultas, buscam atender alguma necessidade do negócio, da empresa na qual esta trabalhando!

Normalmente utilizando a linguagem padrão SQL (Structured Query Language). A Linguagem SQL, é subdivida em alguns tipos de linguagem, são elas:

Principais comandos do dia a dia

Abaixo uma listagem dos principais comandos utilizados no dia a dia de um Analista de dados.

Cenário

Aqui usaremos um BD (MySQL) para demostrarmos os comandos, no caso o banco de dados de chama:

  • datawarehouse

E as tabelas que utilizaremos são:

  • fato_vendas
  • dim_produto
  • dim_cliente

Script para montagem do banco de dados e tabelas (Download)

Modelo Relacional

O principal…

Vamos começar pelo comando default, o comando base para todos os demais:

SELECT * FROM <tabela>;

Anatomia do comando:

  • SELECT — Seleciona uma ou mais colunas de uma tabela
  • FROM — aqui é informado qual a tabela

Exemplo:

Resultado do comando acima…

Os demais comandos SQL…

Costumo dizer assim: “o SQL tem um comando default (acima explicado) e a partir dele podemos onde nossa imaginação mandar…” vamos para alguns destes comandos que podem nos levar muito longe (boas análises)…

WHERE — São as condições

Exemplo:

Resultado do comando acima

DISTINCT — Seleciona os registros distintamente (não aparecerão linhas repetidas)

Exemplo:

Resultado do comando acima

LIMIT ou TOP — Retorna os n primeiros registros

Exemplo:

AND | OR | NOT

A WHEREcláusula pode ser combinada com os operadores AND, ORe NOT.

Os operadores ANDe ORsão usados ​​para filtrar registros com base em mais de uma condição:

  • O ANDoperador exibe um registro se todas as condições separadas por AND forem TRUE.
  • O ORoperador exibe um registro se alguma das condições separadas por ORfor TRUE.

O NOToperador exibe um registro se a(s) condição(ões) NÃO for VERDADEIRA.

Resultado do comando NOT (observem que os comandos podem ir se combinando);

Funções de agregação (SUM, AVG, MAX, MIN, COUNT e ROUND)

Funções embutidas (built-in) aplicadas sobre uma coleção de valores (colunas) do banco de dados

  • SUM— Retorna o somatório dos valores de uma coleção
  • AVG — Retorna a média dos valores de uma coleção
  • MAX— Retorna o maior valor de uma coleção de valores
  • MIN — Retorna o menor valor de uma coleção
  • COUNT — Retorna o número de elementos de uma coleção

— Não podem ser utilizados na cláusula WHERE*

  • ROUND— Arredondamento de valores

Exemplo:

Resultado do comando acima (visualização única)

GROUP BY — Agrupando dados

A instrução GROUP BY agrupa linhas que têm os mesmos valores em linhas de resumo, como “encontrar o número de clientes em cada país”

Exemplo:

Resultados

HAVING — Condições em Agrupamento de dados

A cláusula HAVING foi adicionada ao SQL porque a palavra-chave WHERE não pode ser usada com funções agregadas.

Exemplo:

Resultados

UNION

O UNIONoperador é usado para combinar o conjunto de resultados de dois ou mais SELECT.

  • Cada SELECTdentro UNIONdeve ter o mesmo número de colunas
  • As colunas também devem ter tipos de dados semelhantes
  • As colunas em cada SELECT também devem estar na mesma ordem

Exemplo:

Resultado do comando acima

Outros relacionados: EXCEPT | INTERCEPT

IN | BETWEEN

IN — Que o valor este contido naquela condição

BETWEEN — Entre valores

Exemplo:

Resultado do comando acima

LIKE

LIKE — Contenha algo (mais voltado a texto)

Exemplo:

Resultado do comando acima

NULL | NOT NULL

Não retornou resultados, ou seja, não tinha nenhum Produto sem Nome.

Comando relacionado: EXITS, COALESCE

ORDER BY — Ordenar por

Exemplo:

Resultado da consulta acima

TRIM | REPLACE | LPAD | REPLICATE | SUBSTRING | UPPER | LOWER | LEN

Aqui são comandos relacionados a tratamento de colunas texto, em um único SELECT, vou colocar um exemplo de cada…

Exemplo:

Resultado do comando acima

CAST | CONVERT — Convertem um tipo de dados em outro

Exemplo:

Resultado do comando

DATE — Operações envolvendo datas

Exemplo:

Resultado da consulta acima

JOIN — Relacionamento entre tabelas — Operação que permite buscar informações de duas ou mais tabelas que estão relacionadas.

Exemplos:

Resultado do Left Join

VIEW — Em SQL, uma view é uma tabela virtual baseada no conjunto de resultados de uma instrução SQL.

Exemplo:

Resultado da view

CASE — Controle de Fluxo

Exemplo:

WITH— CTE

Uma expressão de tabela comum (CTE) é um conjunto de resultados temporário nomeado que existe no escopo de uma única instrução e que pode ser consultado posteriormente nessa instrução, possivelmente várias vezes.

Window Function

Em SQL, uma função de janela ou função analítica é uma função que usa valores de uma ou várias linhas para retornar um valor para cada linha. As funções de janela têm uma cláusula OVER; qualquer função sem uma cláusula OVER não é uma função de janela, mas sim uma função agregada ou de linha única.

Resultado

Documentação

Todos os comandos acima utilizados, podem ter pequenas variações de sintaxe dependendo do banco de dados que estiver utilizando, então é extremamente recomendado que conheça e pesquise sempre a documentação da ferramenta que esta utilizando, aqui algumas das principais engine de bancos de dados:

SPARK SQL

O Spark SQL, é parte integrante do framework de Big Data Apache Spark, utilizado para processamento de dados estruturados, que permite executar consultas SQL no conjunto de dados do Spark.

Pensou trabalhar em grandes volumes de dados, pensem em utilizar SPARK.

Aqui mostraremos com exemplo:

  • montar o ambiente SPARK dentro do Google Colab
  • acessar um MySQL local
  • comparar performance usando pandas e SPARK (roda um .csv de exemplo no SPARK em 4seg e no Pandas dá erro)

Material auxiliar (download):

Agradeço pela leitura e espero que tenha sido útil…

Obrigado! Antes de você ir:

· 👏 Deixe suas palmas o story e me siga para mais assuntos

· 📰 Vejam mais conteúdos como este Blog do Souza

· 📰🚀 Diariamente dicas rápidas sobre dados 👉Alex Souza

· 💰 Venham conhecer a Comunidade de Análise de Dados

· 🔔 Sigam: Twitter (X) | LinkedIn | Instagram | Youtube | mais…

--

--