SQL Aggregate Fonksiyonları
Bu 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;
Yukarı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.
Bu konuyla ilgili hiçbir yazı bulunamadı!
SDU - Bilgisayar Programcılığı mezunuyum. Sıkı bir Linuxçu ve Özgür Yazılım felsefesini benimsemiş biriyim.
