Toplama İşlevleri tamamen
- Birden çok satırda hesaplama yapmak
- Bir tablonun tek bir sütununun
- Ve tek bir değer döndürmek.
ISO standardı beş (5) toplama işlevi tanımlar:
1) SAYI
3) ORTALAMA
4) MİN
5) MAKS
Neden toplama işlevleri kullanılıyor?
İş açısından bakıldığında, farklı organizasyon seviyelerinin farklı bilgi gereksinimleri vardır. Üst düzey yöneticiler genellikle tüm rakamları bilmekle ilgilenir ve bireysel ayrıntıları gerektirmez.
> Toplama işlevleri, veritabanımızdan kolayca özetlenmiş veriler üretmemizi sağlar.
Örneğin, myflix veritabanımızdan, yönetim aşağıdaki raporları gerektirebilir
- En az kiralanan filmler.
- En çok kiralanan filmler.
- Her filmin bir ayda kiralandığı ortalama sayı.
Toplama işlevlerini kullanarak yukarıdaki raporları kolayca üretiyoruz.
Toplama işlevlerini ayrıntılı olarak inceleyelim.
COUNT İşlevi
COUNT işlevi, belirtilen alandaki toplam değer sayısını döndürür. Hem sayısal hem de sayısal olmayan veri türlerinde çalışır. Varsayılan olarak tüm toplama işlevleri, veriler üzerinde çalışmadan önce boş değerleri hariç tutar.
COUNT (*), belirli bir tablodaki tüm satırların sayısını döndüren COUNT işlevinin özel bir uygulamasıdır. COUNT (*) ayrıca Null ve yinelenenleri de dikkate alır.
Aşağıda gösterilen tablo, filmler tablosundaki verileri gösterir.
referans numarası | İşlem Tarihi | dönüş tarihi | Üye numarası | movie_id | film_ döndü |
---|---|---|---|---|---|
11 | 20-06-2012 | BOŞ | 1 | 1 | 0 |
12 | 22-06-2012 | 25-06-2012 | 1 | 2 | 0 |
13 | 22-06-2012 | 25-06-2012 | 3 | 2 | 0 |
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |
15 | 23-06-2012 | BOŞ | 3 | 3 | 0 |
2 numaralı filmin kaç kez kiralandığını öğrenmek istediğimizi varsayalım.
SELECT COUNT(`movie_id`) FROM `movierentals` WHERE `movie_id` = 2;
Yukarıdaki sorguyu MySQL çalışma tezgahında myflixdb'ye karşı yürütmek bize aşağıdaki sonuçları verir.
COUNT('movie_id') |
---|
3 |
DISTINCT Anahtar Kelime
Yinelenenleri sonuçlarımızdan çıkarmamıza izin veren DISTINCT anahtar sözcüğü. Bu, benzer değerleri birlikte gruplayarak elde edilir.
Distinct kavramını takdir etmek için basit bir sorgu yürütelim
SELECT `movie_id` FROM `movierentals`;
movie_id |
---|
1 |
2 |
2 |
2 |
3 |
Şimdi aynı sorguyu farklı anahtar kelimeyle yürütelim -
SELECT DISTINCT `movie_id` FROM `movierentals`;
Aşağıda gösterildiği gibi, farklı sonuçlar yinelenen kayıtları çıkarır.
movie_id |
---|
1 |
2 |
3 |
MIN işlevi
MIN işlevi , belirtilen tablo alanındaki en küçük değeri döndürür .
Örnek olarak, kütüphanemizdeki en eski filmin yayınlandığı yılı bilmek istediğimizi varsayalım, istenen bilgiyi elde etmek için MySQL'in MIN fonksiyonunu kullanabiliriz.
Aşağıdaki sorgu, bunu başarmamıza yardımcı olur
SELECT MIN(`year_released`) FROM `movies`;
Yukarıdaki sorguyu MySQL çalışma tezgahında myflixdb'ye karşı yürütmek bize aşağıdaki sonuçları verir.
MIN('year_released') |
---|
2005 |
MAX işlevi
Adından da anlaşılacağı gibi MAX işlevi, MIN işlevinin tersidir. Bu belirtilen tablo alanında en büyük değeri döndürür .
Veritabanımızdaki en son filmin piyasaya sürüldüğü yılı almak istediğimizi varsayalım. Bunu başarmak için MAX işlevini kolayca kullanabiliriz.
Aşağıdaki örnek, yayınlanan en son film yılını döndürür.
SELECT MAX(`year_released`) FROM `movies`;
Yukarıdaki sorguyu myflixdb kullanarak MySQL çalışma tezgahında yürütmek bize aşağıdaki sonuçları verir.
MAX('year_released') |
---|
2012 |
TOPLA işlevi
Şimdiye kadar yapılan toplam ödeme miktarını veren bir rapor istediğimizi varsayalım. Belirtilen sütundaki tüm değerlerin toplamını döndüren MySQL SUM işlevini kullanabiliriz . SUM yalnızca sayısal alanlarda çalışır . Null değerler, döndürülen sonuçtan çıkarılır.
Aşağıdaki tablo, ödemeler tablosundaki verileri göstermektedir.
payment_ id | Üye numarası | ödeme tarihi | açıklama | ödenen miktar | external_ reference _number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Film kiralama ödemesi | 2500 | 11 |
2 | 1 | 25-07-2012 | Film kiralama ödemesi | 2000 | 12 |
3 | 3 | 30-07-2012 | Film kiralama ödemesi | 6000 | BOŞ |
Aşağıda gösterilen sorgu, yapılan tüm ödemeleri alır ve tek bir sonuç döndürmek için bunları toplar.
SELECT SUM(`amount_paid`) FROM `payments`;
Yukarıdaki sorguyu MySQL çalışma tezgahında myflixdb ile çalıştırmak aşağıdaki sonuçları verir.
SUM('amount_paid') |
---|
10500 |
AVG işlevi
MySQL AVG işlevi , belirtilen bir sütundaki değerlerin ortalamasını döndürür . TOPLA işlevi gibi, yalnızca sayısal veri türlerinde çalışır .
Ödenen ortalama tutarı bulmak istediğimizi varsayalım. Aşağıdaki sorguyu kullanabiliriz -
SELECT AVG(`amount_paid`) FROM `payments`;
Yukarıdaki sorguyu MySQL çalışma tezgahında yürütmek bize aşağıdaki sonuçları verir.
AVG('amount_paid') |
---|
3500 |
Özet
- MySQL, COUNT, SUM, AVG, MIN ve MAX beş (5) ISO standart toplama işlevinin tümünü destekler.
- TOPLA ve AVG işlevleri yalnızca sayısal veriler üzerinde çalışır.
- Yinelenen değerleri toplama işlevi sonuçlarından çıkarmak istiyorsanız, DISTINCT anahtar sözcüğünü kullanın. ALL anahtar kelimesi, çiftleri bile içerir. Hiçbir şey belirtilmezse, TÜM varsayılan olarak kabul edilir.
- Toplama işlevleri, GROUP BY gibi diğer SQL cümleleri ile birlikte kullanılabilir.
Zeka oyunu
Toplama işlevlerinin kolay olduğunu düşünüyorsunuz. Bunu dene!
Aşağıdaki örnek, üyeleri ada göre gruplandırır, toplam ödeme sayısını, ortalama ödeme tutarını ve ödeme tutarlarının genel toplamını sayar.
SELECT m.`full_names`,COUNT(p.`payment_id`) AS `paymentscount`,AVG(p.`amount_paid`) AS `averagepaymentamount`,SUM(p.`amount_paid`) AS `totalpayments` FROM members m, payments p WHERE m.`membership_number` = p.`membership_number` GROUP BY m.`full_names`;
Yukarıdaki örneği MySQL tezgahında çalıştırmak bize aşağıdaki sonuçları verir.