Voltar para a lista de artigos Artigos
12 minutos de leitura

Consultas SQL para o Planilhas Google

Potencialize suas habilidades de análise de dados utilizando consultas SQL para o Planilhas Google! Este guia abrangente demonstrará como usar a função QUERY para combinar o poder do SQL com a acessibilidade do Planilhas Google!

Está procurando tornar a análise de dados no Planilhas Google mais rápida e poderosa? A função QUERY permite filtrar, classificar e analisar dados da mesma forma que faria no SQL, sem sair da planilha! Neste artigo, detalharemos tudo o que você precisa para começar a usar as consultas SQL no Planilhas Google. Vamos mergulhar de cabeça!

Por que usar SQL com o Google Sheets?

O Google Sheets é um serviço popular de planilhas on-line que permite que os usuários trabalhem e colaborem confortavelmente em qualquer lugar com uma conexão à Internet. Juntamente com outras planilhas, o Google Sheets é uma ferramenta popular para análise de dados, sendo fácil de usar e amigável para iniciantes.

No entanto, criar relatórios complexos apenas com as funções básicas disponíveis no Google Sheets pode ser difícil. Tarefas como filtragem de dados complexos, criação de resumos em vários níveis ou combinação de grandes conjuntos de dados geralmente exigem muito trabalho manual, tornando o processo demorado e propenso a erros.

É aí que entra o SQL! O Planilhas Google permite que você escreva consultas do tipo SQL diretamente nas suas planilhas, operando com dados existentes e fornecendo respostas dinâmicas como as funções comuns. Parece interessante? Vamos dar uma olhada em como você pode começar a usar o SQL com o Planilhas Google.

Usando a função QUERY do Google Sheets

A função QUERY do Planilhas Google tem uma sintaxe semelhante à do SQL, portanto, qualquer uma de suas habilidades existentes será bem traduzida. Discutiremos a sintaxe em detalhes em breve, mas, primeiro, vamos ver alguns dados de amostra que usaremos para mostrar a função QUERY:

Consultas SQL para o Planilhas Google

Este é um trecho de um dos bancos de dados do nosso cursoSQL para Iniciantes , simplificado para atender às nossas necessidades atuais.

Sintaxe geral

A sintaxe geral para usar a função QUERY é a seguinte:

=QUERY(data_range, query, [headers])

Os componentes são:

  • data_range é o intervalo de linhas em que os dados de origem estão armazenados.
  • query é a própria consulta, que discutiremos em breve.
  • headers é o número de linhas de cabeçalho no intervalo de dados (geralmente 1 ou 0). Isso é opcional. Ele é definido automaticamente se não for fornecido, portanto, esse parâmetro é omitido na maioria das vezes.

Vamos dar uma olhada em alguns exemplos de consultas que usam o conjunto de dados acima. Observação: Aqui e em todos os exemplos subsequentes, data_range significa o intervalo de linhas para a função QUERY, ou seja, a tabela em que os dados são armazenados para a consulta SQL.

Google Sheets vs. Consultas de exemplo SQL

Google Sheets

SQL

Explicação

=QUERY(data_range, "select *", 1)

SELECT *
FROM data_range;

Recupera todos os dados no intervalo de dados.

=QUERY(data_range, "select *")

SELECT *
FROM data_range;

Também recupera todos os dados no intervalo, mas permite que o Planilhas Google decida quantas linhas de cabeçalho existem. Evitaremos o argumento de cabeçalho de agora em diante, pois o Planilhas Google pode inferi-lo de forma confiável.

=QUERY(data_range, "select A, B")

SELECT
  Department
  First_Name
FROM data_range;

Recupera apenas os nomes dos departamentos e os primeiros nomes dos funcionários (armazenados nas colunas A e B).

Filtragem de dados

A sintaxe da função QUERY para filtragem de dados é semelhante à sintaxe SQL:

Google Sheets:

=QUERY(data_range, “select * where <condition>”)

SQL:

SELECT * FROM data_range WHERE <condition>;

Vamos examinar alguns exemplos de como a função QUERY se compara ao SQL em termos de filtragem de dados:

Google Sheets

SQL

Explicação

=QUERY(data_range, "select * where D > 3000")

SELECT *
FROM data_range
WHERE Salary > 3000;

Filtra usando números.
Recupera todos os dados de funcionários que têm um salário (coluna D) maior que 3000.

=QUERY(data_range, "select * where A = 'IT'")

SELECT *
FROM data_range
WHERE Department = ‘IT’;

Filtros usando texto.
Recupera todos os dados de funcionários que trabalham no departamento de TI (coluna A).

=QUERY(data_range, "select * where E = ‘Trainee’ and D >= 3000”)

SELECT *
FROM data_range
WHERE Position = ‘Trainee’
  AND Salary >= 3000;

Filtros usando várias condições.
Recupera todos os dados de estagiários (coluna E) que têm um salário de 3000 ou mais (coluna D).

=QUERY(data_range, “select * where B starts with ‘J’”)

SELECT *
FROM data_range
WHERE First_Name LIKE ‘J%’;

Filtra por uma determinada parte de uma string.
Recupera todos os dados sobre funcionários cujos nomes começam com a letra J.
Também há outras funções do mesmo tipo no Planilhas Google; veja a lista completa abaixo.

A condição WHERE pode filtrar números, texto e muito mais:

  • Os números suportam todos esses operadores: <=, <, >, >=, =, !=, <> . Tanto != quanto <> significam "não igual" e podem ser usados de forma intercambiável.
  • Para filtrar os valores de null, você deve usar is null ou is not null. Observe que <column> = null and <column>!= null apresentará um erro.
  • Há várias funções disponíveis para filtrar dados de texto na função QUERY:
    • starts with filtra pelos primeiros caracteres da cadeia de caracteres. starts with ‘A’ corresponderá a todos eles: "Accounting", "Amelia", "A".
    • ends with filtra pelos últimos caracteres da cadeia de caracteres. ends with ‘nt’ corresponderá a todos estes: "management", "Ant", "nt".
    • contains filtra pela substring. contains ‘r’ corresponderá a todos estes: "Harry", "Taylor", "r".
    • matches filtra usando expressões regulares (regex), ou seja, um padrão que descreve uma cadeia de caracteres.
    • like filtra de forma semelhante a LIKE no SQL. No Sheets, ele suporta dois caracteres curinga: % para corresponder a 0 ou mais caracteres, e “_” para corresponder a um caractere. like ‘_o%’ corresponderá a todos estes: "Poole", "ooze", "to".

Para unir várias condições em uma só, você pode usar as palavras-chave and e or:

  • <condition1> and <condition2> será verdadeira somente se ambas forem verdadeiras.
  • <condition1> or <condition2> será verdadeira quando uma ou ambas forem verdadeiras.

Para filtrar pelo inverso da condição, você pode usar a palavra-chave not: where D > 3000 daria o mesmo resultado que where not D <= 3000.

Classificação de dados

A classificação na função QUERY também é semelhante à classificação no SQL. Aqui está a sintaxe básica:

Google Sheets:

=QUERY(data_range, “select * order by <column> [asc/desc]”)

SQL:

SELECT * FROM data_range ORDER BY <column> [ASC/DESC];

Vamos dar uma olhada em como elas se comparam usando alguns exemplos:

Google Sheets

SQL

Explicação

=QUERY(data_range, “select B order by B”)

SELECT First_Name
FROM data_range
ORDER BY First_Name;

Classifica por uma coluna; a ordem final ASC é implícita.

Retorna todos os primeiros nomes dos funcionários em ordem alfabética.

=QUERY(data_range, “select A, B order by A, B desc”)

SELECT
  Department,
  First_Name
FROM data_range
ORDER BY
  Department,
  First_Name DESC;

Classifica por várias colunas em ordem diferente.

Retorna os departamentos e nomes dos funcionários, classificados por departamento em ordem alfabética e, dentro de cada departamento, por nome em ordem alfabética reversa.

Se você não especificar a direção da ordenação, será usada a ordem ascendentepor padrão. Isso significa que as cadeias de caracteres serão mostradas em ordem alfabética e os números serão mostrados do menor para o maior. Especificar … order by A asc … explicitamente obterá o mesmo resultado que evitar especificar a ordem: … order by A ….

Se quiser especificar direções de ordenação diferentes para colunas diferentes, você deverá especificar a ordem para cada coluna. Por exemplo, este ...

=QUERY(data_range, “select A, B order by A, B, C desc”)

... classificará somente a coluna C em ordem decrescente. Esta é a maneira correta de classificar todas as colunas em ordem decrescente:

=QUERY(data_range, “select A, B order by A desc, B desc, C desc”)

Funções agregadas e agrupamento

A função QUERY oferece suporte a várias funções agregadas do SQL. Caso você não esteja familiarizado com elas, as funções de agregação recebem um grupo de linhas como entrada e retornam um único valor. (Os grupos geralmente se baseiam em valores compartilhados em uma determinada coluna; falaremos mais sobre isso em breve. Se você não especificar uma coluna de agrupamento, o conjunto de dados inteiro será o grupo).

As funções de agregação suportadas no site QUERY do Planilhas Google são:

  • count(col) - Retorna o número de valores não nulos da coluna col.
  • max(col) - Retorna o maior valor de col. Ao comparar datas, as datas anteriores são tratadas como "menores". As cadeias de caracteres são comparadas em ordem alfabética e diferenciam maiúsculas de minúsculas.
  • min(col) -Retorna o menor valor de col.
  • sum(col) - Retorna a soma total dos valores numéricos em col.
  • avg(col) - Retorna a média dos valores numéricos em col.

Aqui estão alguns exemplos de funções de agregação usadas por si só, sem agrupamento:

Google Sheets

SQL

Explicação

=QUERY(data_range, “select avg(D)”)

SELECT AVG(Salary)
FROM data_range;

Usar a função avg() por si só faz com que ela use todo o intervalo de dados como entrada.

Retorna o salário médio de todos os funcionários da empresa.

=QUERY(data_range, “select count(B)”)

SELECT COUNT(First_Name)
FROM data_range;

Mesmo princípio; sem grupos, count() conta o número de linhas na coluna B para todo o conjunto de dados.

Retorna o número total de funcionários contando seus primeiros nomes. Observe que valores nulos são omitidos; para obter a contagem adequada de linhas, precisamos ter certeza de que estamos contando uma coluna não nula.

Para agrupar as linhas por um valor de coluna em QUERY, usamos a palavra-chave group by (como no SQL). Aqui está uma comparação entre as duas sintaxes:

Google Sheets:

=QUERY(data_range, “select <data> group by <columns>”)

SQL:

SELECT <data> FROM data_range GROUP BY <columns>;

A palavra-chave group by agrupa as linhas com base nos valores compartilhados na(s) coluna(s) fornecida(s), criando uma única linha para cada valor distinto. Ao usar group by, todas as colunas finais devem ser uma função agregada ou ser usadas na cláusula group by.

O resultado é classificado automaticamente pelas colunas de agrupamento, mas isso pode ser substituído pelo uso de order by.

Aqui estão alguns exemplos de uso de group by com funções agregadas:

Google Sheets

SQL

Explicação

=QUERY(data_range, “select A, avg(D) group by A”)

SELECT
  Department,
  AVG(Salary)
FROM data_range
GROUP BY Department
ORDER BY Department;

Retorna o salário médio entre funcionários de cada departamento.

Observe que o equivalente SQL inclui a cláusula ORDER BY, mas QUERY não. Ao usar group by com QUERY, o resultado é automaticamente classificado.

=QUERY(data_range, “select E, count(B) group by E” order by count(B) desc)

SELECT
  Position,
  COUNT(First_Name)
FROM data_range
GROUP BY Position
ORDER BY COUNT(First_Name) DESC;

Retorna o número de funcionários trabalhando em cada posição. Observe que em QUERY substituímos a ordem de classificação padrão para mostrar as posições com mais funcionários primeiro.

=QUERY(A1:E14, "select A, E, avg(D) group by A, E")

SELECT
  Department,
  Position,
  AVG(Salary)
FROM data_range
GROUP BY
  Department,
  Position
ORDER BY
  Department,
  Position;

Este é um exemplo de agrupamento por múltiplas colunas.

Retorna o salário médio para cada posição em cada departamento. A função QUERY usa a mesma ordem de colunas ao classificar os dados como a ordem especificada ao agrupar.

Combinação de dados de várias planilhas

Na maioria das vezes, você provavelmente gostaria de ter uma planilha separada com todos os dados de origem. Esta seção descreve como usar a função QUERY em uma planilha que não seja a dos dados de origem. Também abordaremos como combinar diferentes fontes de dados em uma QUERY.

Recuperação de dados de outra planilha

O Planilhas Google permite que você faça referência a uma planilha diferente ao escolher uma fonte de dados. Você pode fazer isso adicionando o nome da planilha e um ponto de exclamação (!) ao intervalo do seu conjunto de dados. Por exemplo, vamos supor que estejamos usando atualmente a planilha "analysis" e que os dados de origem estejam na planilha "data" na mesma planilha. (Observação: você pode fazer referência a dados de outras planilhas somente se importá-los para a planilha atual). Podemos especificar o intervalo da seguinte forma:

=QUERY(data!A1:E14, “select *”)

Importante: se a planilha tiver espaços ou caracteres especiais no nome, você deverá colocar o nome da planilha entre aspas simples (‘’), assim:

=QUERY(‘Sheet with a complex name’!A1:E14, “select *”)

Agora você sabe como formatar melhor suas planilhas, separando os dados de origem dos relatórios finais.

Combinação de várias fontes de dados

Você também pode combinar dados de vários intervalos de dados em uma função QUERY. Há duas maneiras de combinar os dados:

  • Verticalmente: Os dados do intervalo 1 serão colocados em cima dos dados do intervalo 2, aumentando o número final de linhas.
  • Horizontalmente: Os dados do intervalo 1 serão colocados lado a lado com os dados do intervalo 2, aumentando o número final de colunas.

A primeira opção funciona como um UNION em SQL. Os dados em ambos os intervalos devem ser semelhantes; ao fazer referência a uma coluna, os dados de ambos os intervalos serão exibidos.

Para usar esse método de combinação de planilhas, substitua o intervalo de dados na consulta pela lista de intervalos, separados por ponto e vírgula e entre chaves {}, assim:

=QUERY({sheet1!A1:B1;sheet2!A1:B1}, “select *”)

A segunda opção funciona como um JOIN no SQL. Cada linha do intervalo 1 é anexada a uma linha do intervalo 2, sendo que a condição de união é o número relativo da linha. Em outras palavras, a primeira linha do intervalo 1 é anexada à primeira linha do intervalo 2.

Esse método tem uma sintaxe semelhante à do método anterior, mas usa vírgulas em vez de ponto e vírgula para separar os intervalos de dados:

=QUERY({sheet1!A1:B1,sheet2!A1:B1}, “select *”)

Você pode saber mais sobre como UNION e JOIN funcionam no SQL em nosso extenso cursoSQL para Iniciantes . Ele inclui mais de 100 exercícios que o ajudarão a aprender e praticar a sintaxe SQL mais importante.

Consultas SQL para o Planilhas Google

Cada exercício desse curso interativo de SQL foi criado para ajudá-lo a consolidar sua compreensão. Ao concluir os exercícios, você ganhará confiança para usar esses comandos no mundo real.

Quer esteja apenas começando ou precise de uma atualização, nossa abordagem passo a passo garante que você aprenderá no seu próprio ritmo. Ao final do curso, você terá uma base sólida em SQL que abrirá oportunidades para análise de dados, geração de relatórios e muito mais.

O uso de consultas SQL torna o Google Sheets mais poderoso

Usar a função QUERY do Planilhas Google é uma ótima maneira de combinar o poder do SQL com a facilidade de uso do Planilhas Google, sem precisar aprender muita sintaxe adicional. Com ela, você pode criar relatórios facilmente compartilháveis que seus colegas podem usar sem precisar sair do Planilhas Google ou entender estruturas SQL avançadas.

Neste artigo, examinamos a sintaxe da função QUERY e suas semelhanças e diferenças em relação ao SQL comum. Como você pode ver, suas habilidades em SQL podem ser facilmente transferidas para a elaboração de consultas no Planilhas Google.

Deseja explorar mais integrações de SQL com as ferramentas do Google? Leia sobre como usar SQL com o Google Analytics.