Voltar para a lista de artigos Artigos
11 minutos de leitura

Estas consultas SQL o ajudarão na análise de dados

Precisa simplificar suas tarefas diárias de análise de dados? Este artigo explica como as consultas SQL básicas podem ajudar.

Se você está planejando uma carreira corporativa ou qualquer área que envolva o trabalho com dados, deve ter se deparado com a SQL, ou Structured Query Language (Linguagem de Consulta Estruturada). A SQL foi desenvolvida pela primeira vez na década de 1970 e continua a ser o padrão do setor para interações com bancos de dados. Muitos de vocês já devem ter decidido aprender essa linguagem, devido ao seu poder. Ou talvez estejam se perguntando se vale a pena aprendê-la.

O SQL é certamente uma das habilidades mais valiosas para quem está procurando emprego. Para funções como analista de dados ou engenheiro de dados, o SQL é o seu ganha-pão diário. Em outros cargos, ele pode não parecer tão necessário. No entanto, acredito firmemente que aprender SQL lhe dá uma vantagem ao trabalhar com dados que tornarão suas decisões de negócios mais robustas. Isso lhe dará a capacidade de analisar confortavelmente grandes volumes de dados e apresentar seus resultados de forma sucinta para qualquer público.

Neste artigo, abordarei as consultas e construções básicas de SQL que o ajudarão a começar a atender às suas necessidades de análise de dados. Mas, antes de começar, deixe-me explicar o que é SQL e suas aplicações gerais.

O que é SQL?

SQL é uma linguagem padrão para acessar e manipular bancos de dados. Em resumo, ela ajuda você a "conversar" com o banco de dados.

Você pode usá-la para recuperar informações já armazenadas no banco de dados, criar novas tabelas e armazenar ou atualizar dados conforme necessário. Parece simples, certo? E é. Mas é aí que reside seu poder: Ele é simples, mas produz resultados muito úteis.

As organizações que seguem uma abordagem centrada em dados para suas decisões de negócios prosperam. E se você apresentar suas ideias usando a análise de dados, é muito mais provável que obtenha a adesão das partes interessadas. De fato, toda empresa precisa da análise de dados, de uma forma ou de outra, para crescer.

O SQL ajuda a tornar esse processo de análise de dados perfeito. Ele pode ser usado para inúmeros aplicativos relacionados a dados, independentemente do domínio - tecnologia, RH, finanças, marketing, vendas - ou do tamanho da empresa. Por exemplo, o SQL pode ajudá-lo a:

  • Analisar dados de clientes e gerar insights relacionados ao comportamento do cliente.
  • Analisar seus dados de PnL para revelar seus maiores custos.
  • Realizar análises financeiras gerais.
  • Entender quais departamentos têm a folha de pagamento/força de trabalho mais cara.
  • Encontre áreas em suas operações com mais erros ou ineficiências.
  • Identificar seus vendedores, lojas, locais, regiões, etc. com melhor desempenho.
  • Analisar os gargalos em seu site e outras tarefas relacionadas a dados.

É claro que esses são apenas alguns exemplos. Na realidade, essa lista é quase infinita. Se você for proprietário ou gerente de uma empresa, talvez até queira que seus funcionários aprendam SQL ou incorporem cursos de SQL em seu processo de integração. No mínimo, é provável que você mesmo queira aprender SQL para poder tomar decisões com base em dados.

Agora que você tem uma ideia do que é SQL e de como ele pode ser usado, vamos nos aprofundar em algumas consultas básicas para que você possa iniciar suas tarefas de análise de dados.

Construções e consultas básicas de SQL

Há muito mais cláusulas e funções SQL do que podemos abordar neste artigo, mas as seguintes são a base da maioria das consultas SQL.

Além disso, os exemplos citados aqui foram criados com base em um conjunto de dados limitado. Na realidade, você trabalhará com milhares de linhas e muitas tabelas. Não se preocupe; as construções permanecem as mesmas, independentemente da quantidade de dados. Essas consultas básicas funcionarão em qualquer tabela do banco de dados. De fato, um dos principais diferenciais do SQL é a escalabilidade, que o diferencia do Excel e de ferramentas semelhantes.

Aqui estão as partes básicas de uma consulta SQL:

1. SELECT e FROM

A palavra-chave SELECT é usada para recuperar dados do banco de dados. Você pode especificar os nomes das colunas (ou seja, o tipo de dados que deseja ver, como nome do cliente ou idade) ou pode ver todos os dados da tabela.

A palavra-chave FROM especifica a(s) tabela(s) da(s) qual(is) os dados devem ser recuperados. Por exemplo, digamos que você queira obter uma lista de todos os clientes do seu banco de dados com o nome e as informações de e-mail deles. Essas informações estão na tabela Customers tabela mostrada abaixo:

Customer_IDCustomer_NameEmailCityCountryAgeSex
1211Antonioxxxx@xxxx.comParisFR32Male
1212Paulineyyyy@yyyy.comLondonUK42Female
1213Matteozzzz@zzzz.comNew YorkUS28Male
1214Sethaaa@bb.comSydneyAU32Male
1215Agathabbb@ccc.comWashington DCUS24Female

Aqui está a consulta que usaríamos para obter uma lista de todos os nomes de clientes com seus endereços de e-mail:

SELECT Customer_Name, Email
FROM Customers;

E o resultado:

Customer_NameEmail
Antonioxxxx@xxxx.com
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Sethaaa@bb.com
Agathabbb@ccc.com

Você pode saber mais sobre SELECT no SQL para Iniciantes curso e no artigo How Do You Write a SELECT Statement in SQL, que inclui vários exemplos.

2. WHERE

Suponha que você administre um site de comércio eletrônico que tenha uma promoção para clientes dos EUA. Nesse caso, você deseja enviar o e-mail somente para clientes dos EUA; a lista que você deseja selecionar deve ter somente clientes dos EUA. É nesse momento que você pode usar a cláusula WHERE.

Portanto, se você usar essa consulta ...

SELECT Customer_Name, Email
FROM Customers
WHERE Country =  'US';

... você obterá esses resultados:

Customer_NameEmail
Matteozzzz@zzzz.com
Agathabbb@ccc.com

A cláusula WHERE é usada para filtrar linhas específicas com base no valor de uma ou mais colunas (nesse caso, é a coluna Country, que não é mostrada nos resultados).

Agora, digamos que você queira listar somente as mulheres dos EUA. Você pode filtrar por várias condições em WHERE se usar a palavra-chave AND:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
AND Sex = 'FEMALE';

Aqui está o resultado:

Customer_NameEmail
Agathabbb@ccc.com

Na consulta acima, o valor de Country e Sex para cada linha é avaliado em relação às condições da cláusula WHERE. Somente as linhas em que ambas as condições forem verdadeiras serão retornadas. Se você quiser retornar os resultados quando uma (ou qualquer) das condições de WHERE for verdadeira, use a palavra-chave OR:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
OR Sex = 'FEMALE';

Isso seleciona todos os clientes do sexo feminino, bem como todos os clientes que moram nos EUA. Observe a diferença nos resultados:

Customer_NameEmail
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Agathabbb@ccc.com

Precisa de mais recursos sobre a cláusula WHERE? Dê uma olhada nestes artigos:

3. ORDER BY

Digamos que você tenha outra tabela em seu banco de dados chamada Orders tabela.

Order_IdItemQuantityCustomer_IdTotal_Value
23A62411212$100
22Ae3431213$210
13A21141213$249
11AXXX41212$212

Você deseja ver os principais pedidos e seus detalhes. Uma maneira de fazer isso é listar os pedidos em ordem decrescente (10-1, Z-A) por valor. Você pode usar algo como esta consulta:

SELECT *
FROM Orders
ORDER BY Total_Value DESC;

E você obteria:

Order_IdItemQuantityCustomer_IdTotal_Value
13A21141213$249
11AXXX41212$212
22Ae3431213$210
23A62411212$100

O uso de um '*' após SELECT informa ao mecanismo SQL para recuperar todas as colunas de uma tabela. A cláusula ORDER BY determina que os resultados sejam mostrados em uma ordem específica. Por padrão, os resultados são retornados em ordem crescente (1-10, A-Z); entretanto, como mencionamos explicitamente a palavra-chave DESC, nossos resultados são retornados em ordem decrescente.

Se quiser saber mais, consulte o excelente Guia detalhado de SQL ORDER BY.

4. CASE

Normalmente, uma empresa terá milhares de linhas na tabela Orders tabela. Talvez você nem sempre queira ver o valor total de cada pedido. Em vez disso, talvez você queira categorizá-los com base no valor ou em alguma outra lógica.

Se você quiser categorizar os pedidos em valor "Alto" ou "Baixo" - dependendo se o valor do pedido está acima ou abaixo de US$ 150 -, poderá usar a construção CASE:

SELECT Order_Id, Total_Value
       CASE WHEN Total_value > 150 THEN 'HIGH' 
            WHEN Total_value < 150 THEN 'LOW' 
            ELSE 'MEDIUM' END as Order_Category
FROM Orders;

E é isso que você obterá:

Order_IdTotal_ValueOrder_Category
13$249HIGH
11$212HIGH
22$210HIGH
23$100LOW

Nessa consulta, cada linha é avaliada pela função CASE. As linhas são atribuídas a uma categoria com base na primeira condição (ou seja, WHEN .. THEN ..) que é avaliada como verdadeira. Como as ordens com os IDs 13, 11 e 22 estão acima de US$ 150, elas são categorizadas como "HIGH". A ordem com ID 23 é atribuída como "LOW" (baixa).

O site ELSE especifica um valor de retorno padrão se nenhuma das condições for avaliada como verdadeira para qualquer linha.

No blog LearnSQL.com.br, temos vários artigos interessantes sobre o uso do CASE em consultas SQL. Aqui estão apenas alguns deles:

5. GROUP BY

Muitas vezes, para gerar insights a partir de grandes conjuntos de dados, podemos querer agrupar itens semelhantes. Podemos usar essas informações para tomar decisões informadas; agrupar os dados nos ajuda a encontrar padrões, comportamentos ou métricas. Esse agrupamento é chamado de agregação; ele pode ser obtido com a cláusula SQL GROUP BY.

Geralmente, você usa uma função para calcular a métrica do grupo. As funções de agregação comumente usadas são SUM(), COUNT(), AVG(), MAX(), e MIN(). Com elas, você pode fazer muitas coisas, por exemplo, calcular as despesas totais de um departamento ou contar o número de funcionários em cada local.

Digamos que você tenha uma oferta em sua empresa em que envia um brinde para o cliente que gasta mais em seu site. Você pode usar a cláusula SQL GROUP BY aqui para recuperar o principal cliente em termos de valor total do pedido. Aqui está a consulta:

SELECT Customer_Id, SUM(Total_Value)
FROM Orders
GROUP BY Customer_Id
ORDER BY 2 DESC;

Aqui está o resultado:

Customer_IdSUM(Total_Value)
1213$459
1212$312

Claramente, seu principal cliente é Customer_Id 1213.

A consulta funciona selecionando primeiro todos os valores exclusivos de Customer_Id e, em seguida, usando GROUP BY para encontrar a soma total agregada de cada um (ou seja, o valor total de todos os pedidos). A cláusula ORDER BY 2 DESC exibe os resultados em ordem decrescente por SUM(Total_Value).

Para obter mais informações sobre GROUP BY na análise de dados, consulte What Is GROUP BY in SQL?

6. JOIN

No exemplo anterior, encontramos o endereço Customer_id do cliente que gastou mais. Mas a tabela Orders Mas a tabela não armazena nenhuma outra informação do cliente, como nome ou detalhes de comunicação. Você precisaria escrever outra consulta para a tabela Customers tabela para recuperar os dados necessários - ou você poderia simplesmente usar JOIN.

O recurso SQL JOIN permite selecionar informações de várias tabelas em uma única consulta. Normalmente, você conectará duas tabelas com base em um ou mais valores de coluna comuns a ambas as tabelas.

Em nosso caso, podemos usar Customer_Id como o campo comum. Ele unirá os campos Customers e Orders tabelas:

SELECT b.Customer_Name, b.Email, a.Customer_Id, SUM(Total_Value)
FROM Orders a
JOIN Customers b
ON a.Customer_id = b.Customer_Id
GROUP BY b.Customer_Name, b.Email, a.Customer_Id
ORDER BY 4 DESC;

Este é o resultado:

Customer_NameEmailCustomer_IdSUM(Total_Value)
Matteozzzz@zzzz.com1213$459
Paulineyyyy@yyyy.com1212$312

Agora a consulta também retorna os detalhes do cliente de que você precisava. Ela funciona comparando os campos Customer_Id em ambas as tabelas e, em seguida, recuperando somente as linhas em que encontrar uma correspondência para os valores. Observe que os IDs de cliente 1211, 1214 e 1215 não estão nos resultados; não havia linhas correspondentes na tabela Orders tabela para esses valores.

Se você quiser exibir todos os valores, mesmo aqueles que não têm uma correspondência na outra tabela, poderá usar algo chamado OUTER JOIN. As junções podem ser um pouco complicadas de entender, mas são um dos conceitos mais importantes do SQL. Fique à vontade para conferir este curso em Cláusulas JOIN em SQL. Ele oferece 93 exercícios que abrangem todos os tipos de JOINs (há vários).

Próximas etapas para aprender análise de dados SQL

Espero que essas consultas tenham lhe dado ideias suficientes para começar a fazer análise de dados usando SQL. Se você não entender perfeitamente as consultas, não se preocupe. Você pode fazer nosso cursoSQL para Iniciantes para praticá-las ou nosso abrangente caminho de aprendizadoSQL de A a Z para ter uma visão completa do que essa linguagem pode fazer. O objetivo final não é apenas aprender SQL, mas usá-lo em seu trabalho diário e desenvolver o hábito de usar a análise de dados para tomar decisões.

Os exemplos que mostrei a você são, obviamente, muito simples. Eu só queria que você entendesse os principais conceitos e visse como é fácil criar consultas SQL. Quando chegar a hora, você aprenderá a criar consultas mais sofisticadas. Elas facilitarão seu trabalho e talvez até atraiam a admiração geral de seus colegas (ou chefe). Conhecer SQL é fantástico!

Depois de aprender os conceitos básicos de SQL, faça a si mesmo estas perguntas ao se preparar para qualquer decisão de negócios:

  1. De que dados preciso para apoiar ou ajudar minha decisão?
  2. Eu já tenho esses dados em meu banco de dados?
  3. Em caso afirmativo, como posso recuperar e apresentar os dados para que eles me ajudem a tomar minha decisão?

Ser orientado por dados é uma característica que pode ser inculcada com a prática. Portanto, continue praticando e aprendendo!