8 Mart 2012 Perşembe

SQL Max Fonksiyonu Kullanımı

Bir değişiklik yapıp konuya hızlıca girmek istiyorum. Zaten başlık konuyu yeterince anlatıyor :) Max fonksiyonu, adı üstünde, bir kolonun en büyük (maximum) değerini veriyor. Öncelikle basitçe tek tablo üzerinde max fonksiyonu kullanımına bakalım. Öncelikle isim ve yaş kolonlarına sahip bir antika tablosu tanımlayalım.
id isim yas
1 Saat 20
2 Mobilya 29
3 Porselen 50
4 Dolap 13
Şimdide elimizde bulunan en eski antikayı bulalım.
SELECT MAX(yas) FROM antika
Sorgu sonucu karşımıza şu sonuç geliyor.
MAX(yas)
50
Görüldüğü gibi sorgu sonucunda en eski antikanın yaşını vermiş oldu. Şimdi işin içine bir de teklif tablosunu ekleyelim.
id ant_id teklif_miktarı teklifveren
1 1 500 Hasan
2 1 550 Münevver
3 1 525 Mert
4 2 1400 Mert
5 2 1250 Münevver
6 3 900 Hasan
7 3 1050 Mert
8 4 2000 Mert
9 4 1800 Hasan
Tabloda teklif hangi antikaya yapıldığını gösteren antika_id alanı, teklif miktarı ve teklif eden kişi tutuluyor. Şimdi de her bir antikaya verilen en yüksek teklifi bulalım.
 SELECT antika.name, MAX(teklif.price) FROM antika LEFT OUTER JOIN teklif ON antika.id=teklif.ant_id GROUP BY antika.name ORDER BY antika.id
Bu sorguda ne yapmış olduk? antika ve teklif tablosunu birleştirerek bir antikaya verilmiş en yüksek teklif miktarını belirlemiş olduk. Sorgura GROUP BY terimi MAX fonksiyonunu (veya SUM gibi diğer fonksiyonların) antika isimleri özelinde çalıştırmamızı sağlıyor. Yani her bir antikanın sahip olduğu max teklifi bulmamızı sağlıyor. GROUP BY terimini kaldırırsak sadece en yüksek teklifi ve hangi antikaya ait olduğunu gösteren sonuç dönüyor. Sorgu sonucu da şöyle;
İsim Teklif_miktarı
Saat 550
Mobilya 1400
Porselen 1050
Dolap 2000
Herkese iyi çalışmalar. Devamı için : SQL Max Fonksiyonu Kullanımı

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..