აგრეგატული ფუნქციები ითვლიან ერთ მნიშვნელობას მრავალი სტრიქონის სიმრავლიდან — COUNT, SUM, AVG, MIN, . ისინი აუცილებელია მონაცემების შეჯამებისთვის (სულ, საშუალო, რაოდენობა), განსაკუთრებით -ის გამოყენებისას.
აგრეგატული ფუნქციები ითვლიან ერთ მნიშვნელობას მრავალი სტრიქონის სიმრავლიდან — COUNT, SUM, AVG, MIN, . ისინი აუცილებელია მონაცემების შეჯამებისთვის (სულ, საშუალო, რაოდენობა), განსაკუთრებით -ის გამოყენებისას.
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
ოთხი ფუნქცია ხშირად გამოიყენება რიგებში. SUM/AVG მუშაობს რიცხვებზე; MIN/MAX რიცხვებზე, თარიხებზე ან ტექსტზე; COUNT რაიმეზე.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) ითვლის ყველა რიგს, მაგრამ COUNT(სვეტი) ითვლის მხოლოდ იმ რიგებს, სადაც ეს სვეტი არის არა NULL — ეს არის დახვეწილი, მაგრამ მნიშვნელოვანი განსხვავება. COUNT(DISTINCT სვეტი) ითვლის უნიკალურ მნიშვნელობებს.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
BEZ GROUP BY, აგრეგატული ფუნქცია აჯამებს მთელ შედეგს ერთ რიგში. GROUP BY-ით, ის აწარმოებს ერთ შეჯამებულ რიგს თითოეული ჯგუფის მიხედვით — ეს არის ტიპიური, მძლავრი გამოყენება.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
აგრეგატული ფუნქციები აუცილებელია მონაცემების შეჯამებისა და ანალიზისთვის — სულების, საშუალოების, რაოდენობებისა და ექსტრემალური მნიშვნელობების გამოთვლა მუდმივი საჭიროება რეპორტაჟში, ანალიტიკაში, დეშბორდებში და აპლიკაციის ლოგიკაში, ამიტომ მათი გაგება ფუნდამენტური SQL ცოდნაა.
ძირითადი ფუნქციების (COUNT, SUM, AVG, MIN, MAX) და როგორ ის ამცირებენ სტრიქონების სიმრავლეს ერთ მნიშვნელობამდე, ის აუცილებელია ნებისმიერი მონაცემების შეჯამებისთვის.
მნიშვნელოვანი, ხშირად გაუგებელი დეტალი არის COUNT(*) vs COUNT(სვეტი) განსხვავება (COUNT(*) ითვლის ყველა რიგს, COUNT(სვეტი) ითვლის მხოლოდ NULL არაფრის მნიშვნელობებს — რაც შეუძლია სხვადსხვა, გაოცების შედეგი შეუქმნას), ასევე COUNT(DISTINCT) უნიკალური მნიშვნელობებისთვის.
ყველაზე მძლავრი არის, აგრეგატული ფუნქციები აერთიანებენ GROUP BY-ს თითოეული ჯგუფის შეჯამებების (რაოდენობა/საშუალო კატეგორიის მიხედვით) აწარმოებისთვის — ანალიტიკური შეკითხვების საფუძველი.
გაგება, რომ ფუნდამენტური შეცდომა არის აგრეგატული ფუნქციების არა განხელოვილი სვეტებით ერთად სკლადირება (ხშირი შეცდომა), ასევე მნიშვნელოვანია.
მონაცემების შეჯამება არის უბიკვიტარული მონაცემთა ბაზის ამოცანა (ყველა რეპორტი, დეშბორდი და ანალიტიკური შეკითხვა იყენებს აგრეგატულ ფუნქციებს), და რადგან ფუნქციების, COUNT დახვეწილობების და განსაკუთრებით მათი კომბინაცია GROUP BY-ს გაგება ფუნდამენტალურია მონაცემთა ანალიზისთვის SQL-ში, აგრეგატული ფუნქციების დაუფლება არის კორე, ხშირად გამოყენებული ცოდნა, აუცილებელი მონაცემებთან მუშაობისთვის — საფუძველი ძირითადი შეკითხვებსა და ანალიტიკური, შეჯამების ძალას, რაც SQL-ს ღირებულს ხდის რეპორტაჟის და შეხედულებების სახით.