Você está na página 1de 6

SQL

para Análise de Dados


Técnicas avançadas para
transformar dados em insights

Cathy Tanimura

Novatec
Authorized Portuguese translation of the English edition of SQL for Data Analysis ISBN 9781492088783
© 2021 Cathi Tanimura. This translation is published and sold by permission of O'Reilly Media,
Inc., the owner of all rights to publish and sell the same.
Tradução em português autorizada da edição em inglês da obra SQL for Data Analysis ISBN
9781492088783 © 2021 Cathi Tanimura. Esta tradução é publicada e vendida com a permissão da
O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra.
© Novatec Editora Ltda. [2022].
Editor: Rubens Prates GRA20220712
Tradução: Aldir Coelho Corrêa da Silva
Revisão gramatical: Tássia Carvalho
ISBN do impresso: 978-65-86057-75-1
ISBN do ebook: 978-65-86057-92-8
Histórico de impressões:
Julho/2022 Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Email: novatec@novatec.com.br
Site: https://novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
GRA20220712
Sumário

Prefácio......................................................................................................................................7
Capítulo 1 ■ Análise com SQL..................................................................................................... 11
O que é análise de dados?..................................................................................................11
Por que SQL?.................................................................................................................... 14
O que é SQL?.............................................................................................................. 14
Benefícios do SQL.......................................................................................................17
SQL versus R ou Python..............................................................................................19
SQL como parte do fluxo de trabalho de análise de dados.............................................21
Tipos de bancos de dados e como trabalhar com eles.........................................................23
Bancos de dados row-store...........................................................................................25
Bancos de dados column-store.....................................................................................27
Outros tipos de infraestrutura de dados.......................................................................28
Conclusão........................................................................................................................30
Capítulo 2 ■ Preparando os dados para análise...........................................................................32
Tipos de dados..................................................................................................................33
Tipos de dados de banco de dados...............................................................................33
Estruturados versus não estruturados...........................................................................35
Dados quantitativos versus qualitativos........................................................................36
Dados primários, secundários e de terceiros.................................................................37
Dados esparsos............................................................................................................38
Estrutura da consulta SQL................................................................................................39
Criação de perfis: distribuições.........................................................................................42
Histogramas e frequências...........................................................................................43
Discretização (Binning)...............................................................................................46
Funções n-tiles............................................................................................................49
Criação de perfis: qualidade dos dados..............................................................................51
Detectando duplicidades..............................................................................................52
Desduplicação com GROUP BY e DISTINCT..............................................................54
Preparação: limpeza dos dados..........................................................................................55
Limpando dados com transformações CASE................................................................56
Conversões de tipos e casting.......................................................................................59
Lidando com nulos: funções coalesce, nullif, nvl..........................................................62
Dados ausentes............................................................................................................65

3
4 SQL para Análise de Dados

Preparação: modelando dados...........................................................................................70


Para qual saída: BI, visualização, estatística, ML..........................................................71
Pivotando com instruções CASE..................................................................................72
Despivotando com instruções UNION......................................................................... 74
Funções pivot e unpivot...............................................................................................76
Conclusão........................................................................................................................78
Capítulo 3 ■ Análise de séries temporais.....................................................................................79
Manipulações de data, data/hora e hora............................................................................80
Conversões de fuso horário..........................................................................................81
Conversões de formato de data e timestamp.................................................................83
Matemática de datas....................................................................................................87
Matemática de horas....................................................................................................90
Unindo dados de diferentes origens..............................................................................92
Conjunto de dados de vendas do varejo.............................................................................93
Encontrando tendências nos dados....................................................................................94
Tendências simples......................................................................................................94
Comparando componentes..........................................................................................97
Percentual em cálculos de totais................................................................................. 105
Indexação para a detecção de alterações percentuais com o passar do tempo............... 110
Janelas de tempo contínuas............................................................................................. 115
Calculando janelas de tempo contínuas...................................................................... 117
Janelas de tempo contínuas com dados esparsos.........................................................122
Calculando valores cumulativos.................................................................................125
Analisando com sazonalidade.........................................................................................128
Comparações período a período: YoY e MoM.............................................................130
Comparações período a período: mesmo mês versus ano passado...............................133
Fazendo a comparação com vários períodos anteriores...............................................138
Conclusão...................................................................................................................... 141
Capítulo 4 ■ Análise de Coorte................................................................................................. 142
Coortes: uma estrutura de análise útil............................................................................. 142
Conjunto de dados de legisladores................................................................................... 146
Retenção......................................................................................................................... 148
SQL para uma curva de retenção básica..................................................................... 149
Ajustando a série temporal para aumentar a exatidão da retenção...............................154
Coortes derivadas da própria série temporal............................................................... 160
Definindo a coorte a partir de uma tabela separada.................................................... 166
Lidando com coortes esparsas.................................................................................... 171
Definindo coortes a partir de datas diferentes da primeira data................................... 176
Análises de coorte relacionadas....................................................................................... 179
Sobrevivência............................................................................................................180
Retorno, ou comportamento de compra repetida........................................................ 184
Cálculos cumulativos................................................................................................. 191
Sumário 5

Análise transversal, considerada com base em uma coorte...............................................194


Conclusão......................................................................................................................204
Capítulo 5 ■ Análise de texto................................................................................................... 205
Por que fazer análise de texto com SQL?..........................................................................205
O que é análise de texto?...........................................................................................206
Por que o SQL é uma boa opção para a análise de texto..............................................207
Quando o SQL não é uma boa opção.........................................................................208
Conjunto de dados de avistamentos de OVNIs................................................................209
Características do texto................................................................................................... 210
Parsing do texto.............................................................................................................. 213
Transformações de texto................................................................................................. 218
Encontrando elementos dentro de blocos de texto maiores...............................................227
Correspondências com curingas: LIKE, ILIKE...........................................................227
Correspondências exatas: IN, NOT IN......................................................................233
Expressões regulares.................................................................................................236
Construindo e remodelando o texto................................................................................254
Concatenação............................................................................................................254
Remodelando o texto.................................................................................................259
Conclusão......................................................................................................................263
Capítulo 6 ■ Detecção de anomalias.........................................................................................264
Recursos e limites do SQL para a detecção de anomalias..................................................266
Conjunto de dados..........................................................................................................267
Detectando valores discrepantes......................................................................................268
Ordenando para encontrar anomalias........................................................................269
Calculando percentis e desvios-padrão para encontrar anomalias...............................272
Representação gráfica para a busca de anomalias visualmente....................................280
Tipos de anomalias.........................................................................................................288
Valores anômalos.......................................................................................................288
Contagens ou frequências anômalas...........................................................................293
Anomalias pela ausência de dados..............................................................................298
Manipulando anomalias.................................................................................................300
Investigação..............................................................................................................300
Remoção................................................................................................................... 301
Substituição por valores alternativos..........................................................................303
Reescalonamento.......................................................................................................305
Conclusão......................................................................................................................308
Capítulo 7 ■ Análise experimental...........................................................................................309
Vantagens e limites da análise experimental com SQL..................................................... 311
Conjunto de dados.......................................................................................................... 312
Tipos de experimentos.................................................................................................... 314
6 SQL para Análise de Dados

Experimentos com resultados binários: o teste qui-quadrado...................................... 314


Experimentos com resultados contínuos: o teste t....................................................... 316
Desafios dos experimentos e opções para o resgate de experimentos que falharam........... 319
Atribuição de variantes.............................................................................................. 319
Valores discrepantes (Outliers)................................................................................... 321
Time Boxing..............................................................................................................322
Experimentos com exposição repetida....................................................................... 324
Se não for possível executar experimentos controlados: análises alternativas....................325
Pré/pós-análise..........................................................................................................326
Análise experimental natural.....................................................................................328
Análise de populações com base em um limite...........................................................330
Conclusão...................................................................................................................... 331
Capítulo 8 ■ Criando conjuntos de dados complexos para análise.............................................. 332
Quando usar SQL para conjuntos de dados complexos....................................................333
As vantagens de usar SQL..........................................................................................333
Quando a lógica deve ser construída em ETL.............................................................334
Quando inserir a lógica em outras ferramentas...........................................................336
Organização do código...................................................................................................338
Comentários..............................................................................................................338
Capitalização, indentação, parênteses e outros truques de formatação.........................340
Armazenando o código..............................................................................................342
Organizando a computação.............................................................................................343
Entendendo a ordem de avaliação de cláusulas SQL....................................................343
Subconsultas............................................................................................................. 347
Tabelas temporárias...................................................................................................350
Expressões de tabela comuns..................................................................................... 351
grouping sets............................................................................................................. 353
Gerenciando o tamanho do conjunto de dados e considerações sobre privacidade.............357
Amostragem com %, mod..........................................................................................358
Reduzindo a dimensionalidade..................................................................................360
PII e privacidade dos dados........................................................................................364
Conclusão......................................................................................................................366
Capítulo 9 ■ Conclusão............................................................................................................ 367
Análise de funil...............................................................................................................367
Desistência, inatividade e outras definições de afastamento..............................................369
Análise de cesta de compras............................................................................................ 374
Recursos.........................................................................................................................377
Livros e blogs............................................................................................................377
Conjuntos de dados................................................................................................... 379
Considerações finais.......................................................................................................380
Índice remissivo...................................................................................................................... 381

Você também pode gostar