Teradata - SubQueries
Subkueri mengembalikan rekaman dari satu tabel berdasarkan nilai dari tabel lain. Ini adalah kueri SELECT di dalam kueri lain. Kueri SELECT yang disebut sebagai kueri dalam dijalankan terlebih dahulu dan hasilnya digunakan oleh kueri luar. Beberapa fiturnya yang menonjol adalah -
Kueri bisa memiliki beberapa subkueri dan subkueri mungkin berisi subkueri lain.
Subkueri tidak mengembalikan rekaman duplikat.
Jika subkueri hanya mengembalikan satu nilai, Anda bisa menggunakan = operator untuk menggunakannya dengan kueri luar. Jika mengembalikan beberapa nilai, Anda dapat menggunakan IN atau NOT IN.
Sintaksis
Berikut ini adalah sintaks umum subkueri.
SELECT col1, col2, col3,…
FROM
Outer Table
WHERE col1 OPERATOR ( Inner SELECT Query);
Contoh
Perhatikan tabel Gaji berikut.
KaryawanNo | Kotor | Deduksi | Gaji bersih |
---|---|---|---|
101 | 40.000 | 4.000 | 36.000 |
102 | 80.000 | 6.000 | 74.000 |
103 | 90.000 | 7.000 | 83.000 |
104 | 75.000 | 5.000 | 70.000 |
Kueri berikut mengidentifikasi nomor karyawan dengan gaji tertinggi. SELECT bagian dalam melakukan fungsi agregasi untuk mengembalikan nilai NetPay maksimum dan kueri SELECT luar menggunakan nilai ini untuk mengembalikan data karyawan dengan nilai ini.
SELECT EmployeeNo, NetPay
FROM Salary
WHERE NetPay =
(SELECT MAX(NetPay)
FROM Salary);
Ketika kueri ini dijalankan, itu menghasilkan keluaran berikut.
*** Query completed. One row found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo NetPay
----------- -----------
103 83000