2 Ocak 2020 Perşembe

GROUP BY - Aggregate Function İle Birlikte Kullanılır

Giriş
Açıklaması şöyle. GROUP BY içine SELECT edilen en az bir sütun ismi verilmeli. İstersek daha fazla da verebiliriz.
Each GROUP BY expression must contain at least one column that is not an outer reference
Aggregation Function
Açıklaması şöyle. Yani GROUP BY bir aggregate metod ile birlikte kullanılır. Bunlar SUM(),COUNT(),AVG() olabilir.
The real importance of GROUP BY can be seen when you use it with aggregate functions like SUM(), COUNT()
Açıklaması şöyle.
In most texts, GROUP BY is defined as a way of aggregating records by the specified columns which allow you to perform aggregation functions on non-grouped columns (such as SUM, COUNT, AVG, etc). In other words, the GROUP BY clause’s purpose is to summarize unique combinations of columns values.
Avg Aggregation Function
Örnek
Şöyle yaparız
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
Çıktısı şöyle
department | avg_salary
-----------------------
Sales      | 65000
Marketing  | 55000
Engineering| 80000
Count Aggregation Function
Count işlemi gruplamadan sonra 
- Tek tablo içinde yapılabilir.
- LEFT JOIN ile yapılabilir

Örnek - Tek Tablo İçinde Count
Şöyle yaparız. Burada GROUP BY içinde SELECT edilen bir sütun için kullanılıyor. COUNT() metodu aggregate olarak kullanılıyor.
SELECT style,COUNT(name) FROM beers GROUP BY style ORDER BY style
Örnek - Tek Tablo İçinde Count
Şöyle yaparız.  Burada GROUP BY içinde SELECT edilen iki sütun için kullanılıyor. COUNT() metodu aggregate olarak kullanılıyor.
SELECT style,brewery_id,COUNT(Name) FROM beers GROUP BY style,brewery_id ORDER BY style
Örnek - LEFT JOIN ile Count
Şöyle yaparız
SELECT products.*, COUNT(sold_products.id) AS total_sold
FROM products
LEFT JOIN sold_products ON sold_products.product_id = product.id
GROUP BY sold_products.product_id

Hiç yorum yok:

Yorum Gönder