TOP n etiketine sahip kayıtlar gösteriliyor.
TOP n etiketine sahip kayıtlar gösteriliyor.

SQL'de WITH TIES Kullanımı

  • WITH TIES, ORDER BY ile sıralanan sonuçlarda son kayıt ile aynı değerde olan kayıtların da listelenmesini sağlar. Bu durumda sonuç belirtilen n sayısından daha fazla olabilir.
  • WITH TIES sadece ORDER BY ile birlikte kullanılmaktadır.

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1: SELECT TOP 3 OrderID, ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen 3 ürünü listeleyelim.)


TOP n ile çalıştırdığımız sorgularımızı eğer WITH TIES ile çalıştırırsak n den farklı sonuç listesi görebiliriz. Örnek Sorgu 1′de de görüldüğü gibi en çok satış yapılan ilk 3 ürünü sıraladık. Fakat sıradaki 6., 7. ürünler de 120′şer adet satıldıysa? Onlar listeye giremeyecek çünkü biz 3 satır görmek istediğimizi belirttik. Bu gibi durumlarda WITH TIES'e başvuruyoruz. Şimdi aynı sorguya WITH TIES uygulayalım ve sonuçları görelim.

Örnek Sorgu 2: SELECT TOP 3 WITH TIES OrderID, ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen 3 ürünü listeleyelim.)

 

WITH TIES kullanımında önemli nokta örnek sorgumuzdaki ilk 3 değeri listeledikten sonra en son satıra ait quantity değeri daha varsa onlarıda getirmesidir. İlk sorguda 3 sonuçtan sonuncusunda quantity değerinin 120 olduğunu görmekteyiz. WITH TIES kullanılan sorguda quantity değeri 120 olan bütün değerlerin getirilmesini sağladık. 

SQL'de TOP n, TOP n Percent ve DISTINCT Kullanımları

İlk n Kaydın Görüntülenmesi - TOP n
  • Belirli sayıda satır çekmek için SQL'de TOP ifadesi kullanılır.
  • TOP n ifadesiyle tablonun baştan ilk n satırını çekebiliriz.
  • TOP n veya TOP n PERCENT anahtar kelimeleri ORDER BY  yan tümcesini ile birlikte kullanılmalıdır. Aksi halde listelenen verilerde WHERE ifadesi ile belirtilen koşula uyan kayıtlar rastgele dizileceğinden, istediğimiz sonucu elde edemeyebiliriz.
TOP n Kullanımı : SELECT TOP n * FROM <Tablo Adı>

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1: SELECT TOP 10 OrderID,ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen 10 ürünü listeleyelim.) 



Belli Yüzdeli Kayıtların Görüntülenmesi - TOP n Percent
  • Tablodaki kayıtların % n kadarı görüntülenebilir.
  • Örneğin tablomuzda 100 kayıt var ise TOP 10 Percent ifadesi ile bu kayıtların %10'u görüntülenir.
TOP n Percent Kullanımı : SELECT TOP n Percent * FROM <Tablo Adı>

Örnek Sorgu 2: SELECT TOP 5 Percent OrderID,ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen ürünlerin %5'ini listeleyelim.) 



Tekrarsız Kayıtların Görüntülenmesi - DISTINCT

DISTINCT Kullanımı : SELECT DISTINCT <sütun adı> FROM <tablo adı> [WHERE <koşul>]
  • Bazen veriler arasındaki benzerlikleri kaldırarak sadece benzer olmayanları listeletmek isteyebiliriz. Böyle durumlarda SELECT DISTINCT sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar. 
  • Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. Fakat DISTINCT ile her tekrarlanan kayıt sadece bir kez listelenir.  
  • DISTINCT SQL komutu SELECT komutu ile birlikte kullanılmaktadır.
Örnek Sorgu 3: SELECT DISTINCT City FROM Customers
(Müşteriler (Customers) tablosundaki  Şehir (City) sutunlarını listeleyelim. Ve aynı değerlerin tekrarlanmamasını sağlayalım.)