Menu
Coddy logo textTech

Built-In Aggregate Part 2

Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 35 / 72.

Bazen toplama fonksiyonlarını, her satırı bir toplama değeriyle karşılaştırmak gibi daha karmaşık şekillerde kullanmamız gerekir. İşte bu noktada iç içe geçmiş sorgular (nested queries) oldukça faydalı olur.

Bireysel satırları toplu (aggregate) değerlerle birleştiren hesaplamalar yapmak istediğinizde, iç içe geçmiş bir sorgu (nested query) kullanmanız gerekir. İşte nedeni:
Bu, istediğiniz satır başına sonucu vermeyecektir:

SELECT value + MIN(value)
FROM table1

Bunun nedeni, aggregate fonksiyonlarının tüm sütun üzerinde çalışması, 'value' referansının ise satır satır çalışmaya çalışmasıdır. Bunu çözmek için iç içe geçmiş bir sorgu kullanırız:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

Bu çalışır çünkü iç içe geçmiş sorgu (SELECT MIN(value) FROM table1) önce yürütülür ve tek bir değer döndürür, bu değer daha sonra her satır için ana sorguda kullanılabilir.

İç içe geçmiş agregalar için yaygın kullanım durumları:
1. Her bir değeri ortalama ile karşılaştırmak

2. Toplamın yüzdesini hesaplama

3. Maksimum veya minimum değerlerden farkları bulma

challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • <strong>items</strong>: <strong>id</strong>, <strong>price</strong>

Her bir öğenin fiyatının tüm öğelerin ortalama fiyatını ne kadar aştığını hesaplayın. Öğe kimliğini (ID), fiyatını ve ortalamadan farkını görüntüleyin. Fark sütununu diff_from_avg olarak adlandırın.

Sonuçları farka göre azalan düzende sıralayın.

Kendin dene

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler