Menu
Coddy logo textTech

Subqueries Part 2

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

Alt sorguların üç ana türü vardır:

  1. Scalar Subqueries - Tek bir değer döndürür (bir satır, bir sütun)
  2. Row Subqueries - Birden fazla sütunu olan tek bir satır döndürür
  3. Table Subqueries - Birden fazla satır ve sütun döndürür

Örneğin, her alt sorgu türü için bazı kullanım örnekleri şunlardır:

Scalar Subquery - Ortalama maaştan daha fazla kazanan çalışanları bulun:

SELECT name, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

Satır Alt Sorgusu - Alice ile aynı departman ve maaşa sahip çalışan(lar)ı bulun

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

Tablo Alt Sorguları - Departmanları ve çalışan sayılarını göster

SELECT department, count
FROM (
    SELECT department, COUNT(*) as count
    FROM employees
    GROUP BY department
) as dept_counts;

Kullanım durumlarına dikkat edin:

  • Scalar - Basit karşılaştırmalar (>, <, =)
  • Birden fazla sütunu eşleştirmeniz gerektiğinde
  • Sonuç kümesinden sorgu yapmanız gerektiğinde
challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • shop: price, quantity, category, list_date

Mağazada tüm miktarların ortalamasından daha fazla toplam miktara sahip kategorileri bulun.

Önemli: Ortalamayı hesaplamak için HAVING yan tümcesi içinde bir alt sorgu kullanmalısınız. Sabit kodlanmış bir değer veya ayrı bir sorgu kullanmayın — alt sorgu HAVING içinde doğrudan shop tablosundan AVG(quantity) hesaplamalıdır.

Çözüm adımları:

  1. İlk olarak, mağazada tüm miktarların ortalamasını hesaplayan bir alt sorgu yazın: SELECT AVG(quantity) FROM shop
  2. Sonra, her kategori için miktarlarını toplayın ve HAVING anahtar kelimesini kullanarak bu alt sorgu ile karşılaştırın

Kopya kağıdı

Alt sorguların üç ana türü vardır:

  1. Skaler Alt Sorgular - Tek bir değer döndürür (bir satır, bir sütun)
  2. Satır Alt Sorgular - Birden fazla sütun içeren tek bir satır döndürür
  3. Tablo Alt Sorgular - Birden fazla satır ve sütun döndürür

Skaler Alt Sorgu - Basit karşılaştırmalar (>, <, =):

SELECT name, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

Satır Alt Sorgu - Birden fazla sütunu eşleştirin:

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

Tablo Alt Sorgu - Sonuç kümesinden sorgu:

SELECT department, count
FROM (
    SELECT department, COUNT(*) as count
    FROM employees
    GROUP BY department
) as dept_counts;

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