Limitando linhas no Teradata com a palavra-chave TOP
A palavra-chave TOP é a forma mais direta de limitar linhas no Teradata. Ela especifica o número exato de linhas a retornar.
Sintaxe:
SELECT TOP n column1, column2, ...
FROM table_name;
Exemplo:
Suponha que você tenha uma tabela chamada employees e queira obter as 10 primeiras linhas.
SELECT TOP 10 employee_id, first_name, last_name
FROM employees;
Saída esperada:
employee_id | first_name | last_name
-------------|------------|-----------
1 | John | Doe
2 | Jane | Smith
... | ... | ...
10 | Alice | Brown
Usando a palavra-chave SAMPLE
Outra forma de limitar linhas no Teradata é com a palavra-chave SAMPLE. Ela é especialmente útil quando você precisa de uma amostra aleatória em vez das primeiras linhas.
Sintaxe:
SELECT column1, column2, ...
FROM table_name
SAMPLE n;
Exemplo:
Para obter uma amostra aleatória de 5 linhas da tabela employees:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 5;
Saída esperada:
employee_id | first_name | last_name
-------------|------------|-----------
7 | Emma | Johnson
3 | Robert | Lee
... | ... | ...
12 | Olivia | Davis
Usando SAMPLE com porcentagem
A cláusula SAMPLE também permite limitar linhas por porcentagem.
Sintaxe:
SELECT column1, column2, ...
FROM table_name
SAMPLE n PERCENT;
Exemplo:
Obtenha uma amostra de 10% das linhas da tabela employees:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 10 PERCENT;
Saída esperada:
employee_id | first_name | last_name
-------------|------------|-----------
2 | Jane | Smith
9 | Mark | Wilson
... | ... | ...
22 | Lucas | Adams
Usando QUALIFY com ROW_NUMBER()
Para cenários mais complexos, você pode usar a cláusula QUALIFY com ROW_NUMBER(). Esse método permite aplicar filtros e condições adicionais.
Sintaxe:
SELECT column1, column2, ...
FROM table_name
QUALIFY ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY sort_column) <= n;
Exemplo:
Obtenha os 5 funcionários mais bem pagos de cada departamento:
SELECT department_id, employee_id, salary
FROM employees
QUALIFY ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) <= 5;
Saída esperada:
department_id | employee_id | salary
---------------|-------------|--------
1 | 101 | 120000
1 | 102 | 115000
... | ... | ...
2 | 201 | 95000
... | ... | ...
Conclusão
Limitar linhas no Teradata pode ser feito de várias formas, cada uma adequada a cenários diferentes. A palavra-chave TOP é direta para limites simples, enquanto SAMPLE oferece aleatoriedade e amostragem por porcentagem. Para requisitos mais complexos, ROW_NUMBER() com QUALIFY oferece uma limitação de linhas poderosa baseada em condições específicas. Entender essas técnicas vai ajudar você a gerenciar grandes conjuntos de dados com mais eficiência no Teradata.
Outros artigos que você pode gostar:
Beekeeper Studio é um cliente de banco de dados gratuito e open source
A melhor ferramenta de consultas e edição de SQL que já usei. Tem tudo o que preciso para gerenciar meu banco de dados. - ⭐⭐⭐⭐⭐ Mit
O Beekeeper Studio é rápido, intuitivo e fácil de usar. Ele suporta vários bancos de dados e funciona muito bem no Windows, Mac e Linux.
O que os usuários dizem sobre o Beekeeper Studio
"O Beekeeper Studio substituiu completamente meu antigo fluxo de trabalho com SQL. É rápido, intuitivo e torna o trabalho com bancos de dados prazeroso de novo."
"Já testei muitas GUIs de banco de dados, mas o Beekeeper encontra o equilíbrio perfeito entre recursos e simplicidade. Simplesmente funciona."