Menu
CoddyTech

Gruplama Bölüm 2

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

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

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 ifadesi her kayıt üzerinde çalışır ve koşulun sağlanıp sağlanmadığını kontrol eder.

Peki toplu sonuçları filtrelemek istersek ne olur? Örneğin:

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

Bu çalışmaz çünkü WHERE herhangi bir toplulaştırmayı denetleyemez. Bunun için HAVING anahtar sözcüğüne sahibiz. Verileri toplulaştırma koşuluna göre filtreler.

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

Bu, ortalama fiyatı 40'tan büyük olan tüm kategorileri filtreler.

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

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

Bu işlem önce kayıtları tek tek ele alacak ve fiyatı 25'ten büyük olan tüm kayıtları filtreleyecek; ancak bundan sonra GROUP BY yan tümcesini çalıştıracak ve ortalama fiyatı 40'tan büyük olan her kategoriyi filtreleyecek.

challenge icon

Görev

Orta

Kullanılabilir tablolar ve sütunlar:

  • earthquakes: location, amplitude, period

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 1'e eşit veya büyüktür
  • Dalgaların periyodu 1 dakikaya eşit veya büyüktür

Bu görev için farklı bir formül kullanacağız: M = (A/T)^2 / T; bu, M = ((A/T)*(A/T)) / T ile eşdeğerdir. Burada M büyüklük, A amplitude sütunu ve T period sütunudur.

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

Sonuçları 2 ondalık basamağa yuvarlayı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

Kendi başına pratik yap: SQL playground