İşlevleri Toplama MySQL

Toplama İşlevleri tamamen

  • Birden fazla satırda hesaplama yapma
  • Bir tablonun tek bir sütununun
  • Ve tek bir değer döndürüyoruz.

ISO standardı beş (5) toplu işlevi tanımlar;

1) SAYI
2) TOPLA
3) AVG
4) DAKİKA
5) MAKS

Neden Toplu İşlevleri Kullanmalı?

Bir iş perspektifinden bakıldığında, farklı organizasyon seviyelerinin farklı bilgi gereksinimleri vardır. Üst düzey yöneticiler genellikle tüm rakamları bilmekle ilgilenirler ve bireysel ayrıntıları bilmek zorunda değillerdir.

Toplama işlevleri, veritabanımızdan kolayca özetlenmiş veriler üretmemize olanak tanır.

Örneğin, myflix veritabanımızdan, yönetim aşağıdaki raporları talep edebilir

  • En az kiralanan filmler.
  • En çok kiralanan filmler
  • Her filmin bir ayda kiralandığı ortalama sayı.

Toplu işlevleri kullanarak yukarıdaki raporları kolayca üretiyoruz.

Toplama işlevlerine ayrıntılı olarak bakalım.

COUNT iş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. Tüm toplama işlevleri, veriler üzerinde çalışmadan önce varsayılan olarak boş değerleri hariç tutar.

COUNT (*), belirtilen tablodaki tüm satırların sayısını döndüren COUNT işlevinin özel bir uygulamasıdır. COUNT (*) aynı zamanda dikkate alır nulls ve kopyalar.

Aşağıda gösterilen tablo, film kiralama tablosundaki verileri göstermektedir

referans numarası İşlem Tarihi dönüş tarihi Üye numarası film_id movie_ geri döndü
11 20-06-2012 NULL 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 NULL 3 3 0

Diyelim ki kimliği 2 olan filmin kaç kez kiralandığını öğrenmek istiyoruz

SELECT COUNT(`movie_id`)  FROM `movierentals` WHERE `movie_id` = 2;

Yukarıdaki sorgunun çalıştırılması MySQL tezgâh myflixdb'ye karşı yaptığımız arama bize şu sonuçları veriyor.

COUNT('movie_id')
3

FARKLI Anahtar Kelime

FARKLI Anahtar Kelime

Sonuçlarımızdan kopyaları çıkarmamıza olanak tanıyan DISTINCT anahtar kelimesi. Bu, benzer değerlerin bir arada gruplanmasıyla elde edilir.

Farklı kavramını anlamak için basit bir sorgu çalıştıralım

SELECT `movie_id` FROM `movierentals`;

movie_id
1
2
2
2
3

Şimdi aynı sorguyu farklı anahtar kelimeyle çalıştıralım.

SELECT DISTINCT `movie_id` FROM `movierentals`;

Aşağıda gösterildiği gibi, ayrı, yinelenen kayıtları sonuçlardan çı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 vizyona girdiği yılı bilmek istediğimizi varsayalım. MySQLİstenilen bilgiyi elde etmek için MIN fonksiyonu.

Aşağıdaki sorgu bunu başarmamıza yardımcı olur

SELECT MIN(`year_released`) FROM `movies`;

Yukarıdaki sorgunun çalıştırılması MySQL workbench'ü myflixdb ile karşılaştırdığımızda aşağıdaki sonuçları elde ediyoruz.

MIN('year_released')
2005

MAX işlevi

Adından da anlaşılacağı gibi MAX işlevi, MIN işlevinin tam tersidir. BT belirtilen tablo alanından en büyük değeri döndürür.

Veritabanımızdaki en son filmin vizyona girdiği yılı almak istediğimizi varsayalım. Bunu başarmak için MAX fonksiyonunu kolaylıkla kullanabiliriz.

Aşağıdaki örnek, en son yayınlanan film yılını döndürür.

SELECT MAX(`year_released`)  FROM `movies`;

Yukarıdaki sorgunun çalıştırılması MySQL myflixdb'yi kullanarak workbench'te yaptığımız çalışma bize şu sonuçları veriyor.

MAX('year_released')
2012

TOPLA işlevi

Şu ana kadar yapılan ödemelerin toplam tutarını veren bir rapor istediğimizi varsayalım. Şunu kullanabiliriz: MySQL SUM hangi işlev belirtilen sütundaki tüm değerlerin toplamını döndürür. SUM yalnızca sayısal alanlarda çalışır. Boş değerler döndürülen sonuçtan hariç tutulur.

Aşağıdaki tablo ödemeler tablosundaki verileri göstermektedir.

ödeme_kimliği Üye numarası ödeme tarihi tanım ödenen miktar harici_ referans _numarası
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 NULL

Aşağıda gösterilen sorgu, yapılan tüm ödemeleri alır ve tek bir sonuç verecek şekilde toplar.

SELECT SUM(`amount_paid`) FROM `payments`;

Yukarıdaki sorgunun çalıştırılması MySQL workbench'ü myflixdb'ye karşı çalıştırmak aşağıdaki sonuçları veriyor.

SUM('amount_paid')
10500

AVG işlev

MySQL AVG işlev belirtilen bir sütundaki değerlerin ortalamasını döndürür. SUM 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 sorgunun çalıştırılması MySQL workbench, bize şu sonuçları veriyor.

AVG('amount_paid')
3500

Zeka oyunu

Toplu işlevlerin kolay olduğunu düşünüyorsunuz. Bunu dene!

Aşağıdaki örnek üyeleri adlarına 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ğin yürütülmesi MySQL workbench bize şu sonuçları veriyor.

AVG işlev

ÖZET

  • MySQL COUNT, SUM, beş (5) ISO standart toplama işlevinin tümünü destekler AVG, MIN ve MAX.
  • TOPLA ve AVG işlevler yalnızca sayısal veriler üzerinde çalışır.
  • Yinelenen değerleri toplu işlev sonuçlarından hariç tutmak istiyorsanız DISTINCT anahtar sözcüğünü kullanın. ALL anahtar sözcüğü çift kopyaları da içerir. Hiçbir şey belirtilmezse ALL varsayılan olarak kabul edilir.
  • Toplama işlevleri aşağıdakiler gibi diğer SQL cümlecikleriyle birlikte kullanılabilir: GROUP BY