logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
mehmetzekikir  
#1 Gönderildi : 7 Mayıs 2014 Çarşamba 16:55:46(UTC)
mehmetzekikir

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


UserPostedImage

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


UserPostedImage

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


UserPostedImage

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


UserPostedImage
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ız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest (3)
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.