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.
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..