Limiter les lignes dans Teradata avec le mot-clé TOP
Le mot-clé TOP est la façon la plus simple de limiter les lignes dans Teradata. Il indique le nombre exact de lignes à renvoyer.
Syntaxe:
SELECT TOP n column1, column2, ...
FROM table_name;
Exemple:
Imaginons que tu as un tableau appelé employees et que tu veux récupérer les 10 premières lignes.
SELECT TOP 10 employee_id, first_name, last_name
FROM employees;
Résultat attendu :
employee_id | first_name | last_name
-------------|------------|-----------
1 | John | Doe
2 | Jane | Smith
... | ... | ...
10 | Alice | Brown
Utiliser le mot-clé SAMPLE
Une autre façon de limiter les lignes dans Teradata passe par le mot-clé SAMPLE. C’est particulièrement utile quand tu as besoin d’un échantillon aléatoire plutôt que des premières lignes.
Syntaxe:
SELECT column1, column2, ...
FROM table_name
SAMPLE n;
Exemple:
Pour récupérer un échantillon aléatoire de 5 lignes du tableau employees :
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 5;
Résultat attendu :
employee_id | first_name | last_name
-------------|------------|-----------
7 | Emma | Johnson
3 | Robert | Lee
... | ... | ...
12 | Olivia | Davis
Utiliser SAMPLE avec un pourcentage
La clause SAMPLE permet aussi de limiter les lignes selon un pourcentage.
Syntaxe:
SELECT column1, column2, ...
FROM table_name
SAMPLE n PERCENT;
Exemple:
Récupère un échantillon de 10 % des lignes du tableau employees :
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 10 PERCENT;
Résultat attendu:
employee_id | first_name | last_name
-------------|------------|-----------
2 | Jane | Smith
9 | Mark | Wilson
... | ... | ...
22 | Lucas | Adams
Utiliser QUALIFY avec ROW_NUMBER()
Pour des scénarios plus complexes, tu peux utiliser la clause QUALIFY avec ROW_NUMBER(). Cette méthode te permet d’appliquer des filtres et des conditions supplémentaires.
Syntaxe:
SELECT column1, column2, ...
FROM table_name
QUALIFY ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY sort_column) <= n;
Exemple:
Récupère les 5 employés les mieux payés de chaque service :
SELECT department_id, employee_id, salary
FROM employees
QUALIFY ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) <= 5;
Résultat attendu :
department_id | employee_id | salary
---------------|-------------|--------
1 | 101 | 120000
1 | 102 | 115000
... | ... | ...
2 | 201 | 95000
... | ... | ...
Conclusion
Il existe plusieurs méthodes pour limiter les lignes dans Teradata, chacune adaptée à un scénario différent. Le mot-clé TOP est simple pour des limites basiques, tandis que SAMPLE apporte de l’aléatoire et un échantillonnage par pourcentage. Pour des besoins plus complexes, ROW_NUMBER() avec QUALIFY offre une limitation puissante basée sur des conditions précises. Maîtriser ces techniques t’aidera à gérer de grands jeux de données plus efficacement dans Teradata.
D’autres articles qui pourraient te plaire :
Beekeeper Studio est une interface de base de données gratuite & open source
Le meilleur outil de requêtes & éditeur SQL que j’aie jamais utilisé. Il m’offre tout ce dont j’ai besoin pour gérer ma base de données. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio est rapide, intuitif et facile à utiliser. Beekeeper prend en charge plein de bases de données et fonctionne parfaitement sous Windows, Mac et Linux.
Ce que les utilisateurs disent de Beekeeper Studio
« Beekeeper Studio a complètement remplacé mon ancien workflow SQL. C’est rapide, intuitif, et ça rend le travail sur les bases de données à nouveau agréable. »
« J’ai essayé beaucoup d’interfaces de bases de données, mais Beekeeper trouve l’équilibre parfait entre fonctionnalités et simplicité. Ça marche, tout simplement. »