CodeGym /Cursos /SQL SELF /Exemplos de formatação e ordenação de dados em tarefas re...

Exemplos de formatação e ordenação de dados em tarefas reais

SQL SELF
Nível 6 , Lição 3
Disponível

Ordenar e formatar dados são skills importantes que ajudam a preparar relatórios legíveis, otimizar a análise de dados e melhorar a experiência dos usuários. Você vai usar isso pra criar relatórios analíticos, preparar dados pra exportação e também no dia a dia com bancos de dados. Na prática, você vai se deparar direto com situações onde precisa formatar bonitinho os dados, remover registros duplicados e ordenar as informações pra facilitar a vida. Bora ver como fazer isso hoje!

Exemplo 1: Criando uma lista de clientes únicos juntando nome e sobrenome, ordenada pelo sobrenome

A gente tem uma tabela customers com os dados dos clientes:

id first_name last_name city
1 Alex Lin New York
2 Maria Chi Los Angeles
3 Alex Lin New York
4 Anna Song Chicago

Nosso objetivo:

  1. Juntar first_name e last_name numa coluna só chamada full_name.
  2. Pegar só os clientes únicos.
  3. Ordenar a lista pelo sobrenome (last_name).

Query SQL

SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    city
FROM customers
ORDER BY last_name;
full_name city
Maria Chi Los Angeles
Alex Lin New York
Anna Song Chicago

Repara que os registros duplicados de Alex Lin foram removidos por causa do DISTINCT, e a lista ficou ordenada pelo sobrenome em ordem alfabética.

Exemplo 2: Formatando dados de pedidos e ordenando

Na tabela orders ficam os dados dos pedidos:

order_id customer_name order_date total_amount
1 Alex Lin 2023-10-01 1500
2 Maria Chi 2023-10-02 2000
3 Alex Lin 2023-10-03 1500
4 Anna Song 2023-10-04 3000

Nosso objetivo:

  1. Criar uma coluna formatted_order_date onde a data do pedido fica no formato DD-MM-YYYY.
  2. Remover registros duplicados de cliente e data (deixar só combinações únicas de customer_name e order_date).
  3. Ordenar os pedidos pela data, do mais recente pro mais antigo.
  4. Query SQL
SELECT DISTINCT
customer_name,
TO_CHAR(order_date, 'DD-MM-YYYY') AS formatted_order_date,
total_amount
FROM orders
ORDER BY order_date DESC;

Resultado:

customer_name formatted_order_date total_amount
Anna Song 04-10-2023 3000
Alex Lin 03-10-2023 1500
Maria Chi 02-10-2023 2000

Perceba que com a função TO_CHAR() a gente mudou o formato da data pra DD-MM-YYYY, e com DISTINCT tirou os registros duplicados.

Exemplo 3: Pegando combinações únicas de "nome + sobrenome" dos estudantes e ordenando por sobrenome e data de nascimento

Na tabela students estão os dados dos estudantes:

student_id first_name last_name birth_date
1 Alex Lin 2001-03-15
2 Maria Chi 2000-06-20
3 Alex Lin 2001-03-15
4 Anna Song 1999-10-10

Nosso objetivo:

  • Juntar nome e sobrenome numa coluna só chamada full_name.
  • Pegar combinações únicas de "nome + sobrenome".
  • Ordenar os estudantes pelo sobrenome e depois pela data de nascimento.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Resultado:

full_name birth_date
Maria Chi 2000-06-20
Alex Lin 2001-03-15
Anna Song 1999-10-10

Fica ligado: dois registros iguais do estudante "Alex Lin" viraram só uma linha, e a ordenação foi feita primeiro pelo sobrenome e depois pela data de nascimento.

Exercício prático

Usa o que você aprendeu hoje pra resolver essa tarefa:

Tarefa: Você tem uma tabela products com os seguintes dados:

product_id category product_name price
1 Eletrônica Telefone 50000
2 Roupas Jaqueta 8000
3 Eletrônica Notebook 70000
4 Roupas Jaqueta 8000
  1. Crie uma coluna formatted_product onde product_name é juntado com a categoria usando um hífen, tipo: Telefone - Eletrônica.
  2. Remova combinações duplicadas de product_name e category.
  3. Ordene os produtos pela categoria e depois pelo preço (do mais barato pro mais caro).

Aqui vai uma estrutura de query pra você usar:

SELECT DISTINCT
    CONCAT(product_name, ' - ', category) AS formatted_product,
    price
FROM products
ORDER BY category, price ASC;

Tenta imaginar sozinho como ficaria o resultado dessa query!

Usar as funções CONCAT(), DISTINCT e ORDER BY deixa os dados muito mais legíveis e organizados, o que é super importante em projetos e tarefas reais. Pratica bastante pra entender como combinar tudo isso!

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION