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 BYkullanabilirsiniz . SELECTBu 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. MINBunu yapmak için , MAXve 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 :)
GO TO FULL VERSION