5.1 SAHİP beyanı

SQL'de ile birlikte kullanılan başka bir yararlı operatör vardır GROUP BY, buna denir HAVING.

Anlam olarak operatöre tamamen benzemektedir WHERE. Yalnızca WHEREgruplandırmadan önce bir satır filtresi belirlemenize izin verir ve yardım ile HAVINGgruplamadan sonra kayıtlara uygulanan bir filtre ayarlayabilirsiniz.

Gruplandırma kullanılırken ve gruplama sonuçları filtrelenirken sorgunun genel görünümü aşağıdaki gibidir:

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING condition

HAVINGyalnızca istek içeriyorsa kullanılabilir GROUP BY.

Yıllara göre işe alınan çalışan sayısını gösteren bir sorgu yazalım.

SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year

Ve bu sorgunun sonucu:

kiralama_yılı Toplam
2012 1
2013 1
2014 1
2015 2
2018 1

Ve şimdi bir veya daha az çalışanın işe alındığı yılları hariç tutuyoruz. Örnek:

SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year
HAVING total > 1

Ve bu sorgunun sonucu:

kiralama_yılı Toplam
2015 2

5.3 İfadelerin yürütme sırası

Doğru ve verimli SQL sorguları yazmak için bunların SQL sunucusu tarafından nasıl yürütüldüğünü anlamanız gerekir.

Eylemleri gerçekleştirme prosedürü kesinlikle düzenlenmiştir ve arzunuza bağlı değildir. Operatörleri yeniden düzenleyip farklı bir sıralama elde edemezsiniz.

SQL sorgusu bu sırayla birkaç aşamada yürütülür.

  1. 1. Aşama - satırları getirme
    • İlk olarak, belirtilen tablodaki tüm satırlar seçilir.
    • Daha sonra bunlara hesaplanan alanlar eklenir.
    • Ve sonra tüm satırlardan yalnızca koşulu sağlayanlar kalırWHERE
  2. Aşama 2 - gruplama
    • Daha sonra sonuçlara gruplama uygulanır.
    • Gruplandırma sırasında COUNT(*).
    • Son olarak, gruplama sonucuna bir filtre uygulanır HAVING.
  3. Aşama 3 - sıralama
    • Önceki adımlarda elde edilen satırlar kullanılarak sıralanır ORDER BY.

LIMITSon olarak, sonuç ve ile kırpılabilir OFFSET.