[T-Sql] Kümeleme Komutları

Küme fonksiyonları en az iki select sorgusu arasında küme işlemleri yapmaya yarar, yani birleşim kümesi, kesişim kümesi veya fark kümesi gibi işlemler yapar. Küme komutlarının çalışabilmesi için iki select sorgusunda aynı sayıda ve aynı tipte kolonlar olmalıdır.

Union -> Birleşim kümesi oluşturmaya yarar.

Çalıştığımız tüm firmalar(tedarikçi veya müşteri):


select 
       c.CompanyName,
       'Müşteri' 
   from Customers as c
union
select 
       s.CompanyName,
       'Tedarikçi' 
   from Suppliers as s

Intersect -> Kesişim kümesini ifade eder iki sorguda da aynı sıradaki kolonlarda aynı veri olanları getirir.

Hem müşteri hem Tedarikci olan firmalar:


select 
      c.CompanyName 
    from Customers as c
intersect
select 
      s.CompanyName 
    from Suppliers as s 
-- böyle bir firma yokmuş

Except ->Fark kümesi oluşturulur ilk sorguda verilenlerden ikinci sorgudaki verileri çıkarmaya yarar.

Müşterimiz olup tedarikçimiz olmayanlar.


select 
       c.CompanyName 
    from Customers as c
Except
select 
       s.CompanyName 
    from Suppliers as s

Çalışanlar ile aynı şehirde olan müşteriler


select c.City 
    from Customers as c
intersect
select e.City 
    from Employees as e

Aynı şehirde bulunan müşteriler ile çalışanların eşleştirilmesi:


select 
      e.FirstName,
      e.City,
      'Employee' 
    from Employees as e 
    where e.City in(
        select c.City 
            from Customers as c
        intersect
        select e.City 
            from Employees as e
        )
union
select 
      c.CompanyName,
      c.City,
      'Customer' 
    from Customers as c 
    where c.City in(
         select c.City from Customers as c
         intersect
         select e.City from Employees as e
         )
    order by 2,3

Kümeleme komutları bu kadar. Bir sonraki yazımda görüşmek dileğiyle.Kendinize iyi bakınız.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir