Menu
Coddy logo textTech

Gruplama Bölüm 2

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

WHERE anahtar sözcüğü her kayıt üzerinde ayrı ayrı bir koşul çalıştırır. Örneğin:

SELECT * FROM table1
WHERE col1 > col2

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

Peki ya toplu sonuçları filtrelemek istersek? Ö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ümcesini birleştirmek istersek şöyle yazarız:

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

Bu işlem önce kayıt kayıt ilerleyip fiyatı 25'ten büyük olan tüm kayıtları filtreleyecek ve yalnızca bundan sonra GROUP BY yan tümcesini çalıştırıp 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 depremlerin her bir konum için 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 daha büyüktür
  • Dalgaların periyodu 1 dakikaya eşit veya daha büyüktür

Bu görev için farklı bir formül kullanacağız: M = (A/T)<sup>2</sup> / T; bu, M = ((A/T)*(A/T)) / T ile eşdeğerdir.

Her konumun konumunu ve ortalama büyüklüğünü döndürürken yalnızca büyük depremleri dahil edin (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ı 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