Table Sample Komutu
Table Sample komutu Sql Server 2005 ile gelen rastgele sayıda kayıt elde etmemizi sağlayan komuttur. Rastgele sayıda kayıt elde etmek için NewID() fonksiyonuda bulunmaktadır.Table Sample ile kayıtlar direkt olarak verilerin tutulduğu Page’lerden okunur ve ne kadar sayfanın okunacağı parametre olarak belirtilir.Table Sample komutunu iki şekilde çalıştırabiliriz.
select * from Customers tablesample (10 percent) select * from Customers tablesample (50 rows)
Percent ile belirtilmiş sorguda pagelerden yüzde kaçını okuyacağını belirtir. Rows olarak belirtildiğinde 50 kayıt döneceği kesin değildir. Rows sorgu işlenmeden önce percenta çevirilir.Table Sample komutunda (Repeatable) seçeneği ile ilk dönen sonuç seti tekrar elde edilebilir.
select * from Customers tablesample (80 rows) repeatable(1000)
Except Komutu
Except operatörü; iki farklı sorgu sonucu karşılaştırıp ilk sonuç setinde olup, ikinci sorgu sonucunda olmayan kayıtları listeler.
select * from Customers except select* from CustomerCustomerDemo
Intersect Komutu
Intersect komutu iki farklı sonuç kümesinde ortak olan verilerin gösterilmesi için kullanılır.
select * from Customers intersect select* from CustomerCustomerDemo
Group By Rollup
Daha önce group by ile verilerimizi gruplamıştık. Raporlamalarda çok ihtiyaç duyulan ara toplam sonuçlarını group by rollup ile elde edebiliriz. AdventureWorks2012 database’i için bir örnek yapalım.
select SalesOrderID, isnull(cast(ProductID as nvarchar),'Toplam') ProductID ,sum(UnitPrice) from Sales.SalesOrderDetail group by SalesOrderID,ProductID with rollup
Sales.SalesOrderDetail tablosu için SalesOrderID ve ProductID ye göre gruplama yaparak ara toplamları elde ettik. SalesOrderID ye göre ara toplamları getirmiş olduk.
Group By Cube
Group By Rollup komutunda ProductID kolonu null olarak gelmiş bizde null yerine ‘Toplam’ yazdırmıştık. Group By Cube komutu ise group by içinde kullanılan tüm alanlar için ara toplam elde etmemizi sağladı.
select SalesOrderID,ProductID,sum(UnitPrice) from Sales.SalesOrderDetail where ModifiedDate ='2007-07-02 00:00:00.000' group by SalesOrderID,ProductID with cube
İyi çalışmalar…