No SAS e em outras linguagens, contamos com o IF para criar novas informações a partir de outras que já temos. Por exemplo, se eu quero criar um campo que receba 1, se o cliente for de MG, e 0, caso contrário, eu apelo para o IF. E é muito intuitivo. SE (if) o cliente é de MG (UF=”MG”) então (then) o campo novo recebe 1. Caso contrário, recebe 0. Seria algo como o script abaixo: Continuar a ler “CASE WHEN no SQL (Condicionais)”
Categoria: Programação em SQL
Filtros no SQL
Fazer filtros é algo comum em qualquer análise de dados. Muitas vezes você não quer analisar a sua base inteira de clientes, só quer analisar os clientes de algum estado. Ou então só quer analisar os clientes de alguma faixa etária. Pois bem, hoje vamos ver como filtrar no SQL – use o SQL Fiddle para reproduzir esse post. Continuar a ler “Filtros no SQL”
Como converter de string para número no SQL
Novamente, as formatações atrapalhando nossa vida. Quem nunca recebeu uma base em que o campo estava mal formatado, muitas das vezes o número apareceu no formato texto. No SQL é fácil de resolver isso, use a função CAST(): Continuar a ler “Como converter de string para número no SQL”
Como Agrupar os Dados por Semana no SQL
Agora que já mostramos como agrupar os dados por um determinado grupo utilizando o group by, vamos ver como fazer um agrupamento para mostrar os dados semana a semana. Continuar a ler “Como Agrupar os Dados por Semana no SQL”
Group By no SQL
Imagine que você tenha a informação de renda dos clientes das suas lojas ao redor do Brasil. Seria interessante saber qual a renda média da sua base de clientes, claro. Mas talvez fosse mais interessante ainda saber a renda média de clientes por estado. Para fazer isso, sumarização da informação por um determinado grupo, você precisa conhecer o famoso GROUP BY. O Group By serve para fazer exatamente o que o nome diz: “agrupar por” algum campo. Imagine que você tenha uma coluna com valores de alguma variável. Você quer agrupar essa variável de alguma forma, seja fazendo uma soma ou calculando a média. Porém, você tem a necessidade de agrupar por alguma outra variável. É aí que entra o group by. Vamos ver um exemplo para facilitar. Primeiro, criamos uma tabela para trabalharmos o exemplo. Vamos criar uma tabela já bastante manjada por quem acompanha o site, as compras que os clientes fizeram em uma determinada loja:
-- exclui tabela caso ela exista
drop table base_compras;
-- cria os campos da tabela
CREATE TABLE base_compras (
Id int,
Nome varchar(50),
Sobrenome varchar(50),
Estado varchar(2),
Gastos decimal,
Data_Compra date
);
-- insere valores na tabela
INSERT INTO base_compras
VALUES
(152, 'Andre', 'Silva', 'MG', 351.50, '2018-01-22'),
(222, 'Barbara', 'Toledo', 'SP', 250.10, '2018-05-15'),
(451, 'Carlos', 'Pinheiro', 'MG', 455.00, '2017-02-05'),
(754, 'Eduardo', 'Silva', 'SP', 390.10, '2018-04-10'),
(897, 'Juliana', 'Oliveira', 'MG', 150.50, '2017-03-01'),
(852, 'Maria', 'Lima', 'MG', 325.90, '2018-05-30'),
(997, 'Ricardo', 'Pereira', 'MG', 332.59, '2018-05-25'),
(535, 'Vanessa', 'Costa', 'SP', 241.57, '2017-04-30');
-- visualiza tabela
select * from base_compras;
-- sumariza os gastos por Estado
select estado,
sum(gastos) as gasto_total,
avg(gastos) as media_gastos
from base_compras
group by 1
order by 1;
-- sumariza os gastos por Estado
select estado,
sum(gastos) as gasto_total,
avg(gastos) as media_gastos
from base_compras
group by estado
order by estado;
Como estou trabalhando no SQLite, não consigo utilizar as funções mais simples para lidar com data, como por exemplo year(), month(), day(). Por isso, apenas para que vocês entendam como funciona, vou demonstrar o que faz a função strftime():
select strftime('%Y', Data_Compra) from base_compras
Veja que ela extrai a informação de ano da variável Data_Compra. Eu fiz isso porque agora nós vamos obter a média e a soma dos gastos agrupados por Estado e por Ano. Ou seja, veremos a média dos gastos dos clientes de MG no ano de 2017 e a média no ano de 2018. O mesmo para SP.
select estado, strftime("%Y", Data_Compra) as Ano, sum(gastos) as gasto_total, avg(gastos) as media_gastos from base_compras group by 1,2 order by 1,2;
Viu que simples? Agora você pode fazer resumos dos seus dados de uma forma bem mais completa.
Gostou do post? Veja mais de SQL em Programação em SQL. Além disso, se restou alguma dúvida, ou se você tem alguma crítica, comentário ou sugestão, entre em contato deixando um comentário ou escrevendo através do contato deixado em Sobre o Estatsite / Contato.
Caso tenha interesse em obter mais conteúdos de Data Science, você pode acompanhar o @EstatSite.
Tutorial: SQL do Zero
SQL é uma linguagem extremamente popular no mundo de Ciência de Dados. Diferente do R e do Python, que são muito utilizadas para executar a modelagem e as análises descritivas/exploratórias, o SQL é uma linguagem de pesquisa declarativa padrão para banco de dados relacional*. Em outras palavras, é a linguagem utilizada para consulta em banco de dados. Por esse motivo, é comum vê-la quando se está organizando as informações.
Muitos cientistas de dados que estão mais próximos ao negócio acabam não fazendo parte desse processo de manutenção de banco de dados. Dessa forma, fazem pouco uso do SQL. Entretanto, aprender a linguagem é de suma importância por vários motivos. Você pode precisar fazer algum tipo de extração usando ferramentas que envolvem a linguagem; você pode estar em uma empresa onde o cientista de dados é mais envolvido com manutenção de bancos de dados; dentre várias outras situações existentes. Não à toa, é extremamente comum que a linguagem apareça em cases de processos seletivos para cientista de dados. Sendo assim, este post será dedicado ao SQL, contemplando formas de criar tabelas, filtros, agrupamentos, funções estatísticas, formas de ordenar, renomear colunas, dentre outras coisas. Continuar a ler “Tutorial: SQL do Zero”
Contar linhas no R e SAS/SQL
Uma rapidinha para te ajudar a entender as bases analisadas…
Quando contamos as linhas no PROC SQL do SAS, podemos utilizar: Continuar a ler “Contar linhas no R e SAS/SQL”
Introdução ao SQL
SQL (Structured Query Language) é a linguagem padrão utilizada para armazenar, manipular e recuperar informações de bancos de dados. Colocando de forma simples, é através do SQL que é possível criar e atualizar nossos dados através de um modelo relacional. Os maiores usuários da linguagem são os DBAs (Database Administrators), responsáveis por toda a gestão dos dados, desde criar tabelas até dar acesso às demais áreas (para os mais curiosos há um podcast brasileiro com foco nos DBAs chamado DatabaseCast).