Membatasi Baris di Teradata dengan Keyword TOP
Keyword TOP adalah cara paling sederhana untuk membatasi baris di Teradata. Keyword ini menentukan jumlah pasti baris yang dikembalikan.
Sintaks:
SELECT TOP n column1, column2, ...
FROM table_name;
Contoh:
Misalkan Anda memiliki tabel bernama employees dan ingin mengambil 10 baris teratas.
SELECT TOP 10 employee_id, first_name, last_name
FROM employees;
Output yang Diharapkan:
employee_id | first_name | last_name
-------------|------------|-----------
1 | John | Doe
2 | Jane | Smith
... | ... | ...
10 | Alice | Brown
Menggunakan Keyword SAMPLE
Cara lain untuk membatasi baris di Teradata adalah dengan keyword SAMPLE. Ini sangat berguna saat Anda membutuhkan sampel acak, bukan baris teratas.
Sintaks:
SELECT column1, column2, ...
FROM table_name
SAMPLE n;
Contoh:
Untuk mengambil sampel acak 5 baris dari tabel employees:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 5;
Output yang Diharapkan:
employee_id | first_name | last_name
-------------|------------|-----------
7 | Emma | Johnson
3 | Robert | Lee
... | ... | ...
12 | Olivia | Davis
Menggunakan SAMPLE dengan Persentase
Klausa SAMPLE juga mendukung pembatasan baris berdasarkan persentase.
Sintaks:
SELECT column1, column2, ...
FROM table_name
SAMPLE n PERCENT;
Contoh:
Ambil sampel 10% baris dari tabel employees:
SELECT employee_id, first_name, last_name
FROM employees
SAMPLE 10 PERCENT;
Output yang Diharapkan:
employee_id | first_name | last_name
-------------|------------|-----------
2 | Jane | Smith
9 | Mark | Wilson
... | ... | ...
22 | Lucas | Adams
Menggunakan QUALIFY dengan ROW_NUMBER()
Untuk skenario yang lebih kompleks, Anda bisa menggunakan klausa QUALIFY dengan ROW_NUMBER(). Metode ini memungkinkan Anda menerapkan filter dan kondisi tambahan.
Sintaks:
SELECT column1, column2, ...
FROM table_name
QUALIFY ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY sort_column) <= n;
Contoh:
Ambil 5 karyawan dengan gaji tertinggi di setiap departemen:
SELECT department_id, employee_id, salary
FROM employees
QUALIFY ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) <= 5;
Output yang Diharapkan:
department_id | employee_id | salary
---------------|-------------|--------
1 | 101 | 120000
1 | 102 | 115000
... | ... | ...
2 | 201 | 95000
... | ... | ...
Kesimpulan
Membatasi baris di Teradata bisa dilakukan dengan berbagai metode, masing-masing cocok untuk skenario yang berbeda. Keyword TOP praktis untuk batasan sederhana, sementara SAMPLE menyediakan pengambilan sampel acak dan berbasis persentase. Untuk kebutuhan yang lebih kompleks, ROW_NUMBER() dengan QUALIFY menawarkan pembatasan baris yang andal berdasarkan kondisi tertentu. Memahami teknik-teknik ini akan membantu Anda mengelola dataset besar secara lebih efisien dan efektif di Teradata.
Artikel lain yang mungkin Anda sukai:
Beekeeper Studio Adalah GUI Database Gratis & Open Source
Tool query & editor SQL terbaik yang pernah saya pakai. Semua yang saya butuhkan untuk mengelola database ada di sini. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio cepat, intuitif, dan mudah digunakan. Beekeeper mendukung banyak sekali database, dan berjalan mulus di Windows, Mac, dan Linux.
Apa Kata Pengguna Tentang Beekeeper Studio
"Beekeeper Studio benar-benar menggantikan workflow SQL lama saya. Cepat, intuitif, dan membuat kerja dengan database kembali menyenangkan."
"Saya sudah mencoba banyak GUI database, tapi Beekeeper punya keseimbangan sempurna antara fitur dan kesederhanaan. Langsung jalan."