SQL Server: Penggunaan SELECT TOP pada Query

SELECT TOP memungkinkan kita membatasi jumlah atau persentase baris yang dikembalikan dalam data hasil kueri. 

Urutan baris yang ditampilkan SELECT TOP akan selalu mulai dari baris paling atas, jika ingin mengurutkan berdasarkan kriteria tertentu maka perlu dibarengi oleh ORDER BY. 

Berikut ini sintaks TOP dengan pernyataan SELECT:

SELECT TOP (expression) [PERCENT]
    [WITH TIES]
FROM 
    nama_table
ORDER BY 
    nama_column

Pada sintaks ini :

  • Pernyataan SELECT juga boleh dilengkapi dengan clause lainnya seperti WHERE, JOIN, HAVING, dan GROUP BY.
  • Yang dimaksud dengan expression pada sintaks adalah ketentuan berapa banyak baris data yang harus dihasilkan dari query.
  • Ekspresi akan bernilai float jika PERCENT digunakan, atau jika tidak akan menjadi nilai BIGINT.
  • PERCENT menunjukkan bahwa query menghasilkan sejumlah persentase N pertama dari baris, di mana N adalah nilai konstan atau hasil dari ekspresi.
  • WITH TIES memungkinkan kita mendapatkan hasil baris lebih banyak dengan nilai yang sama dengan baris terakhir dalam kumpulan hasil SELECT TOP. Jadi jika menggunakan WITH TIES hasil bisa lebih banyak dari yang ditentukan ekspresi dalam SELECT TOP.


Untuk lebih jelasnya penggunaan SELECT TOP ini mari kita lihat pada beberapa contoh kasus. Berikut ini sample data dari table item yang akan kita gunakan.


1. Menggunakan SELECT TOP dengan nilai konstan

Contoh berikut ini menggunakan nilai konstanta untuk menentukan 10 barang dengan harga tertinggi.

SELECT TOP 10 barcode, itemname, pricesell 
FROM [dbo].[item]
ORDER BY pricesell DESC

Hasilnya sebagai berikut:

2. Menggunakan SELECT TOP dengan Nilai persentase baris (row)

Berikutnya untuk penggunaan presentase, misalnya dari total 20 baris yang ada dalam tabel item. Kita hanya SELECT 25% yaitu 5 dari total 20 baris.

SELECT TOP 25 PERCENT barcode, itemname, pricesell 
FROM [dbo].[item]
ORDER BY pricesell DESC


3. Menggunakan SELECT TOP dengan WITH TIES 

Penggunaan WITH TIES pada SELECT TOP adalah untuk memasukan/mengikutsertakan nilai yang sama dengan baris terakhir dalam hasil query TOP.

SELECT TOP 3 WITH TIES barcode, itemname, pricesell 
FROM [dbo].[item]
ORDER BY pricesell ASC

Mari kita bandingkan hasil TOP 3 biasa dan TOP 3 WITH TIES berikut ini:



Post a Comment

0 Comments