Veritabanı yönetim sistemlerinde sadece verileri saklamakla kalmaz, aynı zamanda bu veriler üzerinde çeşitli analizler ve hesaplamalar da yaparız. SQL Server, ham verilerinizi anlamlı raporlara dönüştürürken kullanabileceğiniz oldukça zengin matematiksel fonksiyonlar sunar.

Finansal tablolardan istatistiksel analizlere, geometrik hesaplamalardan rastgele veri üretimine kadar birçok alanda işinizi kolaylaştıracak en popüler 14 SQL Server matematiksel fonksiyonunu pratik örneklerle mercek altına alıyoruz.

1. ABS (Mutlak Değer)

ABS fonksiyonu, içerisine girilen pozitif veya negatif sayının işaretine bakmaksızın mutlak değerini (pozitif halini) döndürür. Özellikle gelir-gider farkı veya iki değer arasındaki mutlak değişimi hesaplarken sıkça kullanılır.

SQL


SELECT ABS(-150) AS MutlakDeger;
-- Sonuç: 150

2. POWER (Üs Alma)

Bir sayının belirtilen kuvvetini (üssünü) hesaplamak için kullanılır. İki parametre alır: İlki tabandaki sayı, ikincisi ise alınacak üssü ifade eder.

SQL


-- 5 üzeri 4 (5⁴) değerini hesaplayalım
SELECT POWER(5, 4) AS Ussu;
-- Sonuç: 625

3. SQUARE (Karesini Alma)

Verilen bir sayının karesini (2. kuvvetini) hesaplar. Aslında POWER(sayi, 2) fonksiyonunun kısa yoludur.

SQL


SELECT SQUARE(25) AS Karesi;
-- Sonuç: 625

4. SQRT (Karekök Alma)

Verilen pozitif bir sayının karekökünü hesaplar.

SQL


SELECT SQRT(625) AS Karekök;
-- Sonuç: 25

💡 Harika Bir Uygulama: Hipotenüs Hesaplama

SQUARE ve SQRT fonksiyonlarını bir arada kullanarak, dik kenarları 3 ve 4 olan bir üçgenin hipotenüs uzunluğunu (Pisagor Teoremi: $a^2 + b^2 = c^2$) kolayca bulabiliriz:

SQL


SELECT SQRT(SQUARE(3) + SQUARE(4)) AS Hipotenus;
-- Sonuç: 5

5. AVG (Ortalama Değer)

Bir sütundaki tüm sayısal değerlerin aritmetik ortalamasını döndürür. Raporlamalarda en sık kullanılan agregasyon (kümeleme) fonksiyonlarından biridir.

SQL


SELECT AVG(Maas) AS OrtalamaMaas FROM Personel;

6. SUM (Toplam Alma)

Belirtilen sütundaki tüm değerlerin aritmetik toplamını verir. Örneğin, İstanbul şubesinde çalışan personellerin toplam maliyetini bulmak için WHERE şartı ile kombine edilebilir:

SQL


SELECT SUM(Maas) AS ToplamMaliyet
FROM Personel
WHERE Sehir = 'İstanbul';

7. COUNT (Kayıt Sayısı)

Tablodaki toplam satır sayısını veya belirli bir kritere uyan kayıtların adedini verir. COUNT(*) kullanımı tablodaki tüm satırları sayarken, COUNT(SutunAdi) sadece NULL olmayan değerleri sayar.

SQL


SELECT COUNT(*) AS ToplamCalisanSayisi FROM Personel;

8. CEILING (Yukarı Yuvarlama)

Ondalıklı bir sayıyı, kendisinden büyük veya eşit olan en küçük tam sayıya yuvarlar. Kısacası, virgülden sonra ne olduğuna bakmaksızın sayıyı yukarıya taşır.

SQL


SELECT CEILING(15.1) AS YukarıYuvarla;
-- Sonuç: 16

9. FLOOR (Aşağı Yuvarlama)

Ondalıklı bir sayıyı, kendisinden küçük veya eşit olan en büyük tam sayıya yuvarlar. Sayıyı tabana çeker.

SQL


SELECT FLOOR(15.9) AS AsagiYuvarla;
-- Sonuç: 15

10. ROUND (Basamağa Göre Yuvarlama)

Matematiksel kurallara göre en yakın değere yuvarlama yapar. İki parametre alır: yuvarlanacak sayı ve virgülden sonra kaç basamak bırakılacağı.

SQL


SELECT ROUND(15.678, 2) AS Yuvarlanmis;
-- Sonuç: 15.680 (Virgülden sonra 2 basamak tuttu ve yukarı yuvarladı)

11. MIN (En Küçük Değer)

Belirli bir sütun veya koşul içerisindeki en küçük (minimum) değeri döndürür.

SQL


-- İsmi 'E' harfi ile başlayan çalışanların en düşük maaşını bulalım
SELECT MIN(Maas) AS EnDusukMaas
FROM Personel
WHERE Ad LIKE 'E%';

12. MAX (En Büyük Değer)

Belirli bir sütun veya koşul içerisindeki en büyük (maksimum) değeri döndürür.

SQL


-- İsmi 'E' harfi ile başlayan çalışanların en yüksek maaşını bulalım
SELECT MAX(Maas) AS EnYuksekMaas
FROM Personel
WHERE Ad LIKE 'E%';

13. PI (Pi Sayısı)

Matematikteki sabit $\pi$ (3.14159...) sayısını döndürür. Geometrik hesaplamalarda hayat kurtarır.

SQL


-- Yarıçapı (r) 5 cm olan bir dairenin alanını hesaplayalım (Formül: Pi * r^2)
SELECT PI() * SQUARE(5) AS DaireAlani;
-- Sonuç: 78.5398...

14. RAND (Rastgele Sayı Üretme)

0 ile 1 arasında (0 dahil, 1 hariç) rastgele bir float değer üretir.

  1. Eğer RAND() şeklinde boş bırakılırsa, sorgu her çalıştığında farklı bir sayı üretilir.
  2. Eğer RAND(5) gibi içerisine bir tohum (seed) değeri verilirse, sorgu her çalıştığında aynı rastgele sayıyı üretir.

💡 İpucu: 0 ile 100 Arasında Rastgele Tam Sayı Üretmek

Gerçek senaryolarda genellikle belirli aralıklarda tam sayılara ihtiyaç duyarız. Örneğin 0-100 arasında rastgele bir tam sayı üretmek için RAND() fonksiyonunu FLOOR ile şu şekilde birleştirebiliriz:

SQL


SELECT FLOOR(RAND() * 100) AS RastgeleSayı;
-- Sonuç: 0 ile 99 arasında dinamik bir tam sayı.

Eğer bir tablodan rastgele 10 adet kayıt veya sayı listelemek isterseniz, SQL Server'daki NEWID() veya döngü yapılarıyla bu fonksiyonu zenginleştirebilirsiniz.

Özet

SQL Server'da matematiksel fonksiyonlar, veri manipülasyonu ve analiz süreçlerinde performans kazanmanızı sağlar. Büyük veri yığınlarını uygulama katmanına (C#, Python vb.) çekip orada hesaplamak yerine, direkt veritabanı seviyesinde SUM, AVG, ROUND gibi fonksiyonlarla işlemek çok daha hızlı sonuç verir.

Projelerinizde hesaplama yükünü SQL Server'a devrederek hem kod kalitenizi artırabilir hem de raporlama sürelerinizi kısaltabilirsiniz. Bir sonraki veritabanı rehberimizde görüşmek üzere!