Sıralama: Administration
Gruplar: Administrators
Katılan: 6.05.2014(UTC) Mesajlar: 670
19 Kere Teşekkür Etti. 152 Mesajına Toplam 253 Kere Teşekkür Edildi.
|
TSQL Group By Kullanımı Group by operatörü benim gözümde Sql'in yaramaz hiperaktif çocuğudur. Çünkü Group by bize herzaman birşeyler yapmaya zorlar. Group by ne işe yarar ? Adından da anlaşılacağı gibi bize gruplayarak sonuç döndürmeye yarar. Örneğin DimEmployee tablosundaki her bir Title ait kaç kişi olduğunu bulalım Kod:
SELECT Title, Count(*) FROM DimEmployee
Msg 8120, Level 16, State 1, Line 1
Column 'DimEmployee.Title' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Sorguyu çalıştırdığımızda yukarıdaki hatayı alıyoruz. Şimdi çalıştırdığımız sorguyu biraz inceleyelim. Sorgumuzda title seçtik ve de Toplam kayıt sayısını aldık. Bizim bu hatadan anlamamız gereken 'Title a göre Toplam sayıyı almak istiyorsun ama beni Title göre gruoplamadan bu sayıyı alamazsın'dır. O yüzden sorgumuzu biraz değiştirelim Kod:
SELECT Title, Count(*) AS CalisanSayisi FROM DimEmployee
GROUP BY Title
Mesela FactInternetSales tablosundaki hangi ürünün en son hangi tarihte satıldığına bakalım Kod:
SELECT ProductKey,MAX(OrderDate) AS SatisTarihi FROM FactInternetSales
GROUP BY ProductKey
Peki hangi üründen kaç adet satıldığını görmek istersem nasıl bir sorgu yazmalıyım Kod:
SELECT ProductKey,Count(*) AS SatisToplami FROM FactInternetSales
GROUP BY ProductKey
Peki hangi üründen hangi tarihte ne kadar satış yaptığımızı bulmak istersek nasıl bir sorgu yazmalıyız. Kod:
SELECT ProductKey,OrderDate,SUM(SalesAmount) AS SatisToplami FROM FactInternetSales
GROUP BY ProductKey,OrderDate
|
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınıztwitter.com/dbakademi Dua ve teşekkür en büyük servetlere bedel... |
|
|
|
Forumu Atla
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.