Voltar para a lista de artigos Artigos
10 minutos de leitura

SQL no Google Sheets? Sim, nós podemos!

Você sabia que pode escrever consultas do tipo SQL nas planilhas do Google? Esta característica é incrivelmente poderosa, versátil e pode substituir a maioria das funcionalidades oferecidas pelas tabelas dinâmicas do Excel.

Leia nosso artigo para descobrir como você pode facilmente usar a função QUERY para trabalhar de forma eficiente com seus dados do Google Sheets.

As bases de dados relacionais compartilham muitas características com as planilhas. Quando explicamos o que são bancos de dados, muitas vezes dizemos que eles são um pouco como planilhas, exceto que eles nos dão mais controle sobre quantidades maiores de dados.

Para nos comunicarmos com bancos de dados, normalmente usamos SQL, que é uma forma eficaz de recuperar dados de um banco de dados. (Se você nunca ouviu falar em SQL, comece lendo nosso pequeno artigo O Guia Completo para Iniciantes em Fundamentos de SQL.)

SQL é uma linguagem de consulta universal. Ela existe desde os anos 70 e ainda é extremamente popular. Conhecer SQL aumenta suas chances de ter uma carreira estável em TI, pois este conhecimento é procurado por muitos empregadores. Se você gostaria de descobrir os benefícios do uso de SQL, verifique 5 Grandes Benefícios de Aprender SQL.

Agora, vamos voltar às planilhas. As planilhas são importantes porque os dados nem sempre são armazenados em um banco de dados. Muitas empresas usam arquivos CSV ou planilhas para gerenciar suas informações. Estas podem ser abertas em aplicações como Google Sheets ou Microsoft Excel, mas estes arquivos não funcionam com bancos de dados como tal.

Isso significa que você não pode usar SQL quando trabalha com dados em planilhas eletrônicas? De forma alguma! O Google Sheets fornece uma opção QUERY que lhe permite escrever instruções do tipo SQL e recuperar dados de uma forma semelhante a SQL. Desta forma, você pode usar o poder do SQL mesmo que não tenha um banco de dados para trabalhar!

Escusado será dizer que o Google Sheets está disponível gratuitamente. O programa pode abrir uma grande variedade de formatos de arquivo, incluindo arquivos CSV e Excel.

Uma vez que SQL é uma linguagem de consulta de dados bem desenhada e padronizada, pensar em termos de SQL quando se trabalha em Google Sheets pode ajudar em suas análises. Para saber mais sobre isso, veja o post Como começar a pensar em SQL do consultor técnico da NoSide Jeffrey Edison.

Neste artigo, mostraremos alguns exemplos básicos de como trabalhar com SQL no Google Sheets. Alguns conhecimentos em SQL são recomendados, mas não é necessário entender os conceitos que vamos apresentar. Você deve ser capaz de seguir os exemplos, mesmo que nunca tenha visto uma declaração SQL antes. Entretanto, se você gostaria de aprender SQL, dê uma olhada no curso LearnSQL.com.br's Fundamentos de SQL, que não assume nenhuma experiência anterior e o transformará em um usuário intermediário de SQL.

Amostragem de dados do Google Sheets

Neste artigo, vamos trabalhar com uma simples planilha do Google Sheets que contém algumas informações básicas sobre hotéis selecionados na Indonésia. Já utilizamos hotéis imaginários, portanto, não tente encontrá-los.

Amostragem de dados do Google Sheets

Você pode ver a planilha e todas as consultas que apresentamos neste artigo em nossa "Consulta de hotéis" Google Sheet. Há uma planilha separada para cada consulta discutida neste artigo.

A Hotels A tabela contém as seguintes colunas:

  • Id - O identificador único para aquele hotel.
  • Nome - O nome do hotel.
  • Estrelas - O número de estrelas concedidas ao hotel: 3, 4 ou 5.
  • Rating - A classificação média do hotel por seus hóspedes, em uma escala de 0 a 10.
  • TwinRoomPrice - O preço base para um quarto duplo por uma noite.
  • City - A cidade onde o hotel está localizado: Bandung, Denpasar, ou Surabaya.

Mesmo que os hotéis sejam imaginários, as cidades são reais. Google Bandung, Denpasar e Surabaya - eles são realmente bons destinos de viagem indonésios!

Muito bem. Agora que conhecemos os dados, vamos aprender a usar o SQL em Folhas.

Entendendo a Função de Consulta

Para escrever instruções do tipo SQL no Google Sheets, precisaremos apenas de uma única função chamada QUERY. O formato da função não é particularmente difícil:

=QUERY(data, query, [headers])

Como você pode ver, a função QUERY leva três parâmetros, dos quais apenas dois são necessários. Vejamos esses parâmetros:

  • data - A gama de células contendo os dados (neste caso, a gama é toda a Hotels tabela).
  • query - A consulta do tipo SQL a ser realizada.
  • headers - O número de linhas que contêm informações de cabeçalho. Estes normalmente estão no topo dos dados, ou seja, os nomes das colunas. Este argumento é opcional. Se você não fornecê-lo, o Google Sheets tentará descobrir isso. A aplicação é bastante boa nisto, portanto, o parâmetro normalmente não é necessário. Vamos omiti-lo neste artigo.

Não se preocupe se estes parâmetros parecerem um pouco vagos para você - daremos alguns exemplos fáceis de serem seguidos nos próximos parágrafos.

Primeira Consulta no Google Sheets

Vamos começar com o exemplo mais fácil possível. Vamos simplesmente selecionar todos os dados de nossa Hotels mesa.

Vamos primeiro escolher uma cela livre à direita da Hotels tabela no Google Sheets e começar a escrever nossa consulta da seguinte maneira. (Não pressione Enter ainda).

=QUERY(A1:F23,

O primeiro parâmetro, data, é a faixa de células. Neste caso, fornecemos A1:F23, que corresponde ao intervalo do Hotels tabela, como mostrado na figura abaixo.

Mesa de hotelaria

Agora, após a vírgula, devemos fornecer nossa consulta do tipo SQL dentro de aspas. O nome oficial para a linguagem de consulta utilizada no Google Sheets é Google Visualization API Query Language. Para selecionar todos os dados, precisamos do seguinte código:

=QUERY(A1:F23,"SELECT *")

Observe que você pode precisar substituir a vírgula que separa os parâmetros por um ponto-e-vírgula ou outro caractere, com base em suas configurações do Google Sheets.

Em Google Sheets, SELECT * significa "selecionar tudo". Observe como esta instrução é semelhante a seu equivalente SQL, SELECT * FROM Hotels. No Google Sheets, omitimos a cláusula FROM porque o intervalo de dados é especificado no primeiro argumento.

Se você pressionar Enter agora, o Google Sheets transformará a consulta em um conjunto de resultados, como mostrado na figura abaixo:

SELECIONE * DE Hotéis

A tabela que você pode ver é essencialmente idêntica à tabela original. Este é o comportamento esperado. Nossa consulta foi SELECT *, o que significa "mostrar tudo a partir dos dados originais".

Ótimo! Acabamos de escrever nossa primeira consulta no Google Sheets!

Trabalhando com Colunas e Condições

Agora vamos dar uma olhada em alguns exemplos mais avançados. Suponhamos que agora queremos mostrar apenas três colunas: Nome, Classificação, e TwinRoomPrice. E mais, queremos ver apenas hotéis de três estrelas.

Neste caso, teremos que nos referir a colunas individuais. A consulta terá este aspecto:

=QUERY(A1:F23, "SELECT B, D, E WHERE C=3")

Como você pode ver, em vez de usar nomes de colunas de nossa tabela (como Nome, Estrelas ou Rating), usamos as letras das colunas fornecidas pelo Google Sheets. O nome da coluna está localizado na coluna B da planilha, então usamos SELECT B para mostrá-la na tabela resultante. Da mesma forma, utilizamos D para selecionar a coluna Rating e E para selecionar a coluna TwinRoomPrice. As colunas também são separadas por vírgulas, mas não há vírgula após a última coluna que queremos selecionar.

Após selecionar as colunas, adicionamos WHERE C=3. C refere-se à coluna Estrelas, portanto a instrução basicamente significaselecionar somente hotéis de três estrelas (ou seja, onde a coluna C é igual a 3).

A captura de tela abaixo mostra como a consulta se refere às colunas individuais:

selecione somente hotéis de três estrelas

Quando pressionamos Enter, o Google Sheets produz uma tabela limpa que contém três colunas com todas as informações para hotéis de três estrelas: Nome, Classificação e TwinRoomPrice.

selecione somente hotéis de três estrelas

Note que a consulta SQL equivalente seria muito semelhante:

SELECT Name, Rating, TwinRoomPrice
FROM Hotels
WHERE Stars=3;

Adicionando mais condições e filas de pedidos

Em nosso próximo exemplo, queremos encontrar todos os hotéis em Bandung que tenham uma classificação acima de 7,0. Também queremos ver os hotéis resultantes classificados de menos a mais caros.

Para satisfazer estes requisitos, teremos de acrescentar duas novas partes. Precisaremos unir várias condições com a palavra-chave AND, e precisaremos ordenar as linhas com uma nova cláusula chamada ORDER BY. Aqui está a pergunta:

=QUERY(A1:F23, "SELECT * WHERE D > 7.0 AND F='Bandung' ORDER BY E")

Veja a cláusula WHERE da consulta acima. A coluna D contém as classificações do hotel. Neste caso, queremos que a classificação seja maior que 7,0. Também queremos introduzir outra condição: os hotéis devem estar localizados em Bandung. Para introduzir mais de uma condição, usamos a palavra-chave AND.

A coluna F contém as cidades dos hotéis, então escrevemos F='Bandung' para obter hotéis de Bandung. Observe que os valores do texto precisam ser rodeados por aspas simples (ao contrário dos números). Se esquecermos as aspas, receberemos um erro.

Finalmente, adicionamos a seguinte parte do código: ORDER BY E. A cláusula ORDER BY é usada para ordenar as linhas resultantes. Neste caso, queremos ordenar as linhas por TwinRoomPrice, que está na coluna E. Por padrão, as linhas serão ordenadas em ordem ascendente.

Quando pressionamos o botão Enter, podemos ver a tabela resultante. Na verdade, só podemos ver hotéis de Bandung com uma classificação superior a 7,0. Observe que todas as filas estão ordenadas por preço.

hotéis de Bandung com uma classificação superior a 7,0

Contando Linhas Agrupadas

Finalmente, passaremos a dois exemplos que você pode usar para produzir resultados semelhantes às tabelas dinâmicas do Excel.

Primeiro, queremos contar o número de hotéis em cada cidade. Para fazer isso, usaremos a seguinte consulta:

=QUERY(A1:F23,"SELECT F, COUNT(A) GROUP BY F ")

A consulta contém dois novos elementos: COUNT(A) e GROUP BY F. Vamos começar com este último.

GROUP BY F significa que queremos dividir todas as linhas em grupos com base nos valores da Coluna F (que é Cidade). Realizamos o agrupamento (também conhecido como "agregação") para poder mostrar cada cidade (SELECT F) ao lado do número de hotéis naquela cidade (COUNT(A)).

COUNT(A) conta o número de filas no grupo dado. Se não for fornecida uma cláusula de GROUP BY, ela contará todas as filas. Colocamos a coluna A(Id) dentro dos parênteses para que todos os hotéis únicos sejam contados. Escolhemos Id fora da convenção; você poderia usar outra coluna, como B (o nome do hotel), mas as colunas ID são geralmente preferidas porque sempre contêm valores únicos.

Discutimos funções agregadas (tais como COUNT()) e a cláusula GROUP BY em nosso cursoFundamentos de SQL . Confira se você quiser entender como funcionam estas funções SQL.

Quando pressionamos Enter, podemos ver a tabela resultante com o número de hotéis em cada cidade:

número de hotéis em cada cidade

A consulta SQL equivalente seria parecida com esta:

SELECT City, COUNT(Id)
FROM Hotels
GROUP BY City;

Como encontrar as médias

No último exemplo, vamos calcular a classificação média e o preço médio dos hotéis de cada categoria (três estrelas, quatro estrelas e cinco estrelas). Vamos precisar da seguinte consulta:

=QUERY(A1:F23, "SELECT C, AVG(D), AVG(E) GROUP BY C")

Utilizamos GROUP BY C para agrupar todos os hotéis pela coluna Estrelas. Também introduzimos AVG(D) e AVG(E), que são usados para calcular os valores médios nas colunas D(Rating) e E(TwinRoomPrice), respectivamente. Quando pressionamos Enter, devemos ver esta tabela de resultados:

Como encontrar médias

A instrução SQL equivalente seria parecida com esta:

SELECT Stars, AVG(Rating), AVG(TwinRoomPrice)
FROM Hotels
GROUP BY Stars;

Consultas SQL(ish) no Google Sheets? Absolutamente!

Neste artigo, eu expliquei como usar uma linguagem de consulta semelhante à SQL em Google Sheets. Agora você deve ter uma compreensão sólida da função QUERY em Folhas. Você também pode ver como a linguagem de consulta do Google é semelhante à SQL padrão.

Se você gostou de aprender isto e está curioso sobre SQL, verifique LearnSQL.com.br's Fundamentos de SQL Curso. Há um teste gratuito para ajudar você a começar!

Certamente há mais na linguagem de consulta do Google do que fomos capazes de mostrar neste artigo introdutório. Se você estiver interessado em usar suas outras características, dê uma olhada na documentação oficial da linguagem de consulta API do Google Visualization.