Toplamın Eşikten Büyük Olduğu Durumlarda MySQL HAVING Maddesi Nasıl Kullanılır?

Toplamin Esikten Buyuk Oldugu Durumlarda Mysql Having Maddesi Nasil Kullanilir



MySQL veritabanıyla çalışırken, genellikle değerleri filtrelemek istediğiniz durumlar olacaktır. WHERE yan tümcesini kullanabilseniz de, her zaman tüm örnekler için çalışmaz. HAVING yan tümcesi, bir toplama işlevi kullanarak bir filtre sorgusu yürütmek ve gruplandırmaları uygulamak istediğinizde kullanılır.

HAVING yan tümcesi, filtresindeki GROUP BY yan tümcesine dayanır ve sağlanan koşula göre sorguyu yürütür. Filtreyi koşula göre kısıtlar ve yalnızca koşulu karşılayan seçili grupları döndürür. Toplamın eşiği aştığı durumlarda MySQL HAVING yan tümcesini kullanma örneklerimiz var. Böylece, bugünkü yazımızın sonunda onu nasıl kullanacağınız konusunda ustalaşacaksınız.







Toplamın Eşikten Büyük Olduğu Durumlarda MySQL HAVING Maddesi Nasıl Kullanılır?

GROUP BY yan tümcesiyle MySQL HAVING yan tümcesini uygularsınız. Sözdizimi aşağıdaki gibidir:



SELECT ifade1, .. ifade_n, agrega_func (ifade) tablo_adı FROM BY ifadeye göre ;

SUM(), COUNT(), MIN(), MAX() ve AVG() gibi farklı toplama işlevlerini kullanabilirsiniz. Toplama işleviyle kullanılmayan herhangi bir ifadenin GROUP BY deyimiyle belirtilmesi gerektiğini unutmayın.



Koşul gelince, koşulla kontrol etmek istediğiniz eşiği belirttiğiniz toplu sonuçlara uygulanır. Örneğin, SUM() işlevini uygulayabilir ve ifadenin 10 eşiğini karşılayıp karşılamadığını doğrulayabilirsiniz. Verilen örneklerde bunun hakkında daha fazla şey anlayacağız.





HAVING cümlesinin nasıl çalıştığını anlamak için üzerinde çalışacağımız örnek bir veritabanı oluşturalım. Veritabanımıza “register” adını veriyoruz.



Farklı sütunlarımızı ve veri türlerimizi içerecek şekilde “workers” adında bir tablo da oluşturalım. Burada, çalışanların isim, saat, çalışma tarihi vb. verileriyle çalışıyoruz.

Tablomuzun açıklamasını kontrol ederek, tüm sütunların başarıyla oluşturulduğunu onaylayabiliriz.

Değerleri tablomuza giriyoruz. Farklı saat ve günlerde çalışan farklı çalışanlarımız var. Bu verileri kullanarak, toplamın eşiği aştığı durumlarda HAVING yan tümcesini uygulayabiliriz.

İlk örneğimiz için, en çok saat çalışan işçileri bulmak istediğimiz bir durumu ele alalım. HAVING yan tümcesi için, saatler için toplam toplama işlevini ekleyin. GROUP BY yan tümcesinde, eşikten daha yüksek toplam saate sahip çalışanları sınıflandırmaya yardımcı olmak için ad satırını kullanarak satırları gruplandırırız.

Toplam saat için eşik değerimiz 7 ise aşağıdaki gibi komutumuzu çalıştırıyoruz:

İsim SEÇİN, SUM(saat) AS total_hours_per_person AS GRUPTAN ada göre toplam(saat) > 7;

Komutu çalıştırarak, HAVING yan tümcesinde belirtilen eşiği yalnızca iki işçi aştığı için iki satır içeren bir çıktı alıyoruz.

Diyelim ki departmanları, 7 saat eşiğinden daha uzun saatlerde çalışan işçileri görmek için sınıflandırmak istiyoruz. Departmanı seçiyoruz, ardından SUM toplama işlevini saatlerle birlikte kullanıyoruz ve departman ifadesini kullanarak satırları gruplandırıyoruz.

Komutumuz aşağıdaki gibidir:

departman SEÇİN, SUM(saat) AS total_hours_per_department OLARAK işçilerden departmana göre GRUP toplam(saat) > 7 OLARAK;

Sonuçlardan, satırları yalnızca çalışma saatleri toplamı eşiğimizden yüksek olanları bırakmak üzere filtrelemeyi başardığımızı doğrulayabiliriz.

Benzer şekilde, en çok çalışan işçinin bulunduğu workdate'i 10 saat eşiğini aşacak şekilde filtrelemek istiyorsak workdate ifadesini seçiyoruz. Ardından, saatlerle SUM işlevini kullanırız ve çalışma tarihini kullanarak satırları gruplandırırız.

Komut aşağıdaki gibidir:

ÇALIŞMA TARİHİNİ SEÇİN, TOPLAM(saat) AS TOPLAM(saat) TOPLAM(saat) > 10 OLAN, ÇALIŞANLAR GRUBUNDA ÇALIŞMA TARİHİNE GÖRE ÇALIŞTIĞI EN YÜKSEK_SAAT;

Komutu çalıştırdıktan sonra, sonuçlar yalnızca bir çalışma tarihinin toplam saatlerinin toplamının eşiği aştığını gösterir:

Çözüm

Bir toplama işlevi kullanarak bir filtre sorgusu yürütmek istediğinizde MySQL HAVING yan tümcesi kullanılır. Daha spesifik bir sorgu yürütmek için GROUP BY deyimi ile birleştirilir. Bu gönderi, toplamın eşikten büyük olduğu MySQL HAVING yan tümcesi hakkında her şeyi ayrıntılı olarak açıkladı. Sağlanan örneklerle, artık MySQL HAVING yan tümcesiyle nasıl çalışılacağını anlıyorsunuz.