Exists ve Group By

Exists Sorgu’da aradığımız değerin veritabanımızda olup olmadığını anlamamızı sağlar. Eğer aranan veri, veritabanımızda mevcut ise “true” değeri, mevcut değil ise “false” değeri dönecektir.

declare @aranacak nvarchar(20)  --değişkenimizi tanımladık
set @aranacak='AKATE'

if exists (select * from Products where ProductName=@aranacak)
begin
print @aranacak +'bulundu'
end
else
begin
print @aranacak +' bulunamadı'
end

declare @aranacak2 nvarchar(20)  
set @aranacak2='Chai'

if exists (select * from Products where ProductName=@aranacak2)
begin
print @aranacak2 +' bulundu'
end
else
begin
print @aranacak2 +' bulunamadı'
end

Group by ifadesini matematiksel fonksiyonlarla beraber kullanırız. Select sorgusunda ki ‘Where’ komutunun yerini group by da ‘Having’ almıştır.

Sıralamalarda kullandığımız “asc” ifadesi artan sıraya göre “desc” ifadesi ise azalan sıraya göre “Newıd()” ise rastgele istenen sayıda değer getirir.NewId() her çalıştığında farklı değerler gelecektir.

select Country, COUNT(CompanyName) as [şirket sayısı] from Suppliers group by Country                              --ülkelere göre gruplama yapıp, her ülkedeki şirket sayısını bulduk

select Country, COUNT(CompanyName) as [şirket sayısı] from Suppliers group by Country Having COUNT(CompanyName)>=2 --burada ise minimum 2 şirket olan ülkeler geldi.

select CategoryID, SUM(UnitPrice) as Toplam from Products group by CategoryID order by Toplam asc                  --Product tablosundan categoryID ye göre gruplandırma yaptık, değerleri topladık ve artan sıraya göre görüntüledik.

select ProductName, Max(UnitPrice) as [En Yüksek] from Products group by ProductName order by [En Yüksek] desc     --ProductName göre grupladık UnitPrice'in en yüksek değerini azalan sırada görüntüledik.

select top 1 CategoryID, SUM(UnitPrice) as Toplma from Products group by CategoryID                                --Toplamı En yüksek olan UnitPrice'i görüntüledik.

select top 5 percent SupplierID,  Count(ProductName) as Ürünler from Products group by SupplierID                  --SupplierID'ye göre grupladık ,productName sayısını sadece %20 lik kısmı görüntüledik.ProductName sayısının yüzde 20sini almadık.

select top 2 CustomerID from Customers order by NEWID()                                                            --NEWID fonksiyonuyla rastgele 2 tane customerID getirdik. Her sorguda sonuç değişecektir.

Bir cevap yazın

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