6.1 Toplu işlevlerin listesi
SQL'de satır gruplandırmayı operatörle kullandığınızda , ifadede gruplanmış veriler üzerinde çalışan işlevleri GROUP BY
kullanabilirsiniz . SELECT
Bu tür işlevlere toplama işlevleri de denir.
İşte en popüler olanların bir listesi:
# | İşlev | Tanım |
---|---|---|
1 | SAYMAK() | Bir gruptaki değerlerin sayısını döndürür |
2 | TOPLA() | Bir gruptaki değerlerin toplamını verir |
3 | MAKS() | Bir grubun maksimum değerini döndürür |
4 | DAK() | Bir grubun minimum değerini döndürür |
5 | ortalama() | Bir grubun ortalamasını verir |
6 | BIT_AND() | Tüm grup değerleri üzerinde bit düzeyinde AND gerçekleştirir |
7 | BIT_OR() | Tüm grup değerleri üzerinde bit düzeyinde OR gerçekleştirir |
8 | BIT_XOR() | Tüm grup değerleri üzerinde bit düzeyinde bir XOR gerçekleştirir |
9 | GROUP_CONCAT() | Tüm grup değerlerini tek bir dizede birleştirir |
Şimdi toplama işlevlerimizle bazı örneklere bakalım.
6.2 Çalışan maaşlarını analiz etme
Çalışan tablosundan çalışanlarımız hakkında bazı istatistikler hesaplayalım .
Birinci soru: kaç çalışanımız var?
Tablodaki tüm kayıtların sayısını bulmak istiyorsak, bunun için toplama işlevini kullanabiliriz COUNT
. İstek şöyle görünecektir:
SELECT COUNT(*) FROM employee
Ve MySQL yanıt olarak 6 sayısını döndürecek Departmanda bir kedi dahil 6 çalışanımız var. Elbette.
İkinci soru: Tüm çalışanlara ayda ne kadar ödüyoruz?
Bu soruyu cevaplamak için tüm çalışanların maaşlarını toplamamız gerekiyor. Bunu yapmak için toplama işlevini kullanırız.SUM()
İstek şöyle görünecektir:
SELECT SUM(salary) FROM employee
Dikkat edin bu sefer hangi kolona ait değerleri özetlediğimizi belirtmemiz gerekiyor. Bir maaş sütunu belirledik . Bir tablodaki tüm alanları toplayamayız.
Ve MySQL cevap olarak 461000 sayısını döndürecek Departmanda 6 çalışanımız var ve maaş 461 bin. Çok fazla.
Ve son olarak üçüncü soru: departmandaki maksimum ve minimum maaşlarımız ne kadar? Peki, ortalama maaşı hesaplayalım. MIN
Bunu yapmak için , MAX
ve işlevlerine ihtiyacımız var AVG
.
Sorgu bu sefer biraz daha karmaşık olacak ve şöyle görünecek:
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
Bu sorgunun sonucu şöyle olacaktır:
DK(maaş) | Ortalama(maaş) | MAKS(maaş) |
---|---|---|
1000 | 76833.3333 | 200000 |
Bölümümüzde asgari ücret 1.000 dolar – çok iyi. Maksimum maaş 200 bin ama bu müdür.
Ancak ortalama maaş çok yüksek, bir şekilde maliyetleri optimize etmeniz gerekiyor. Başka bir kedi kiralayalım ve o kadar :)