Menu
Coddy logo textTech

Grouping Part 2

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

WHERE anahtar kelimesi, koşulu her bir kayıt için ayrı ayrı çalıştırır. Örneğin:

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 koşulu her kayıt için çalışacak ve sağlanıp sağlanmadığını kontrol edecektir.

Peki ya toplulaştırılmış (aggregate) sonuçları filtrelemek istersek? Örneğin:

SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY category

Bu çalışmayacaktır çünkü WHERE herhangi bir toplamayı (aggregation) kontrol edemez. Bunun için HAVING anahtar kelimesine sahibiz. Verileri toplama koşuluna göre filtreler.

SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40

Bu işlem, ortalama fiyatı 40'tan büyük olan tüm kategorileri filtreleyecektir.

HAVING ve WHERE yan tümcelerini birleştirmek istiyorsak şöyle yazarız:

SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40

Bu işlem ilk olarak kayıt kayıt ilerleyecek ve fiyatı 25'ten büyük olan tüm kayıtları filtreleyecektir; ancak bundan sonra GROUP BY yan tümcesini çalıştıracak ve ortalama fiyatı 40'tan büyük olan her kategoriyi filtreleyecektir.

challenge icon

Görev

Orta

Kullanılabilir tablolar ve sütunlar:

  • <strong>earthquakes</strong>: <strong>location</strong>, <strong>amplitude</strong>, <strong>period</strong>

Richter ölçeği, depremlerin büyüklüğünü ölçmek için kullanılan logaritmik bir ölçektir.

Tüm büyük depremler için her konumun ortalama büyüklüğünü döndürmemiz gerekiyor

Büyük bir deprem şu şekilde tanımlanır:

  • Genlik (amplitude) 1'e eşit veya daha büyük olmalıdır
  • Dalgaların periyodu (period) 1 dakikaya eşit veya daha büyük olmalıdır

Bu meydan okuma için farklı bir formül kullanacağız: M = (A/T)<sup>2</sup> / T, bu da M = ((A/T)*(A/T)) / T ifadesine denktir.

Yalnızca büyük depremleri dahil ederek konumu ve her konumun ortalama büyüklüğünü döndürün (sütunu avg_magnitude olarak adlandırın). Sonucunuza yalnızca avg_magnitude değeri 1'den büyük olan konumları dahil edin

Sonuçları virgülden sonra 2 basamağa yuvarlayın (ROUND)

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