Limitare le righe in Teradata con la parola chiave TOP
La parola chiave TOP è il modo più semplice per limitare le righe in Teradata. Specifica il numero esatto di righe da restituire.
Sintassi:
SELECT TOP n column1, column2, ...
FROM table_name;
Esempio:
Supponi di avere una tabella chiamata employees e di voler recuperare le prime 10 righe.
SELECT TOP 10 employee_id, first_name, last_name
FROM employees;
Output previsto:
employee_id | first_name | last_name
-------------|------------|-----------
1 | John | Doe
2 | Jane | Smith
... | ... | ...
10 | Alice | Brown
Usare la parola chiave SAMPLE
Un altro modo per limitare le righe in Teradata è la parola chiave SAMPLE. È particolarmente utile quando ti serve un campione casuale invece delle prime righe.
Sintassi:
SELECT column1, column2, ...
FROM table_name
SAMPLE n;
Esempio:
Per recuperare un campione casuale di 5 righe dalla tabella employees:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 5;
Output previsto:
employee_id | first_name | last_name
-------------|------------|-----------
7 | Emma | Johnson
3 | Robert | Lee
... | ... | ...
12 | Olivia | Davis
Usare SAMPLE con una percentuale
La clausola SAMPLE permette anche di limitare le righe in base a una percentuale.
Sintassi:
SELECT column1, column2, ...
FROM table_name
SAMPLE n PERCENT;
Esempio:
Recupera un campione del 10% delle righe dalla tabella employees:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 10 PERCENT;
Output previsto:
employee_id | first_name | last_name
-------------|------------|-----------
2 | Jane | Smith
9 | Mark | Wilson
... | ... | ...
22 | Lucas | Adams
Usare QUALIFY con ROW_NUMBER()
Per scenari più complessi, puoi usare la clausola QUALIFY con ROW_NUMBER(). Questo metodo ti permette di applicare filtri e condizioni aggiuntive.
Sintassi:
SELECT column1, column2, ...
FROM table_name
QUALIFY ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY sort_column) <= n;
Esempio:
Recupera i 5 dipendenti più pagati di ogni reparto:
SELECT department_id, employee_id, salary
FROM employees
QUALIFY ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) <= 5;
Output previsto:
department_id | employee_id | salary
---------------|-------------|--------
1 | 101 | 120000
1 | 102 | 115000
... | ... | ...
2 | 201 | 95000
... | ... | ...
Conclusione
In Teradata puoi limitare le righe con diversi metodi, ognuno adatto a scenari differenti. La parola chiave TOP è la scelta più semplice per limiti di base, mentre SAMPLE offre casualità e campionamento in percentuale. Per esigenze più complesse, ROW_NUMBER() con QUALIFY permette di limitare le righe in modo potente in base a condizioni specifiche. Conoscere queste tecniche ti aiuterà a gestire grandi dataset in Teradata in modo più efficiente ed efficace.
Altri articoli che potrebbero piacerti:
Beekeeper Studio è una GUI per database gratuita & open source
Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti di Beekeeper Studio
"Beekeeper Studio ha sostituito completamente il mio vecchio flusso di lavoro SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
"Ho provato tante GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."