Mesut.Erdemir: Bir yazılımcının günlüğü..

SQL Aggregate Fonksiyonları

closeBu yazı 9 ay 6 gün önce yayınlanmış olduğundan güncelliğini yitirmiş veya içeriğindeki bilgilerin geçerliliği kaybolmuş olabilir. Herhangi bir yanlış anlaşılmadan bu site sorumlu değildir.

Sql ile çalışırken, sık kullandığımız fonksiyonlar olan “aggregate” fonksiyonlarını açıklayacağım bu yazıda. Yazıya başlamadan önce, kendimize ufak bir veritabanı hazırlayalım. Benim oluşturmuş olduğum veritabanının Sql kodları ve tablonun görüntüsü aşağıdaki gibidir:

DROP TABLE IF EXISTS `sinif`;
CREATE TABLE  `sinif` (
 `id` int(5) NOT NULL auto_increment,
 `Adi` varchar(50) default NULL,
 `Vize` int(3) default NULL,
 `Final` int(5) default NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

LOCK TABLES `sinif` WRITE;
INSERT INTO `sinif` VALUES  (1,'Mesut',70,85),
 (2,'Ali',50,70),
 (3,'Veli',40,35),
 (4,'Selami',90,100),
 (5,'Haluk',60,45);
UNLOCK TABLES;

aggregate_selectYukarıdaki kodu çalıştırdığınızda, yanda görmüş olduğunuz gibi bir veritabanının oluşmuş olması lazım. Şimdi, aggregate fonksiyonları açıklamaya ve örnekleri bu tablo üzerinde uygulamaya başlayalım:

  • AVG(): Bir sütunun ortalama değerini döndürür. Yani, sütundaki tüm kayıtları toplar ve kayıt sayısına böler.
select avg(vize) from sinif;

>>62

  • COUNT(): Kayıt saymaya yarar. Örneğin en sık kullanılan sorgu, veritabanında kaç kayıt olduğudur.
select count(*) from sinif;

>>5

  • MAX() / MIN(): Maksimum ve minimum kayıtları bulmaya yarar. Örneğin, sınavlardaki maksimum / minimum notlar…
select max(final) from sinif;

>>100

select min(final) from sinif;

>>35

  • SUM(): Kayıtların toplam değerini döndürür.
select sum(vize) from sinif;

>>310

Bunların dışında bir de First() / Last() komutları var. Ancak bunlar MySql ile çalışmamakta. Eğer MsSql kullanıyorsanız, yukarıdakilerin kullanımı gibi kullanabilirsiniz. Eğer MySql kullanıyorsanız üzülmeyin, çünkü bu komutlardan çok daha süper bir komut var: LIMIT. Ancak “LIMIT” ‘in kullanımı yukarıdakilerden biraz farklı:

SELECT Adi FROM sinif LIMIT 2,2;

>> Veli
>>Selami

Baştaki 2, üçüncü(ilki 0 oluyor) kayıttan itibaren olduğunu, sondaki 2 ise, 2 kayıt döndüreceğini söylüyor.

VN:F [1.9.3_1094]
Rating: 5.5/10 (2 votes cast)
SQL Aggregate Fonksiyonları, 5.5 out of 10 based on 2 ratings

Bu konuyla ilgili hiçbir yazı bulunamadı!

Buraya yapılan yorumları RSS 2.0 beslemesinden takip edebilirsiniz.