Agregat funksiyalar β ko'p qatorlardan bitta natija hisoblaydi.
Asosiy agregat funksiyalar
-- Jami soni
SELECT COUNT(*) FROM talabalar;
SELECT COUNT(DISTINCT shahar) FROM talabalar;
-- Yig'indi
SELECT SUM(maosh) FROM xodimlar;
-- O'rtacha
SELECT AVG(ball) FROM talabalar;
-- Minimum va maksimum
SELECT MIN(yosh), MAX(yosh) FROM talabalar;
-- Hammasi birga
SELECT
COUNT(*) AS jami,
AVG(ball) AS o'rta_ball,
MIN(ball) AS eng_past,
MAX(ball) AS eng_yuqori,
SUM(ball) AS umumiy
FROM talabalar;
GROUP BY
-- Shahar bo'yicha talabalar soni
SELECT shahar, COUNT(*) AS soni
FROM talabalar
GROUP BY shahar
ORDER BY soni DESC;
-- Kurs bo'yicha o'rta ball
SELECT kurs, AVG(ball) AS o'rta_ball
FROM talabalar
GROUP BY kurs;
-- Bir necha ustun bo'yicha guruhlash
SELECT shahar, kurs, COUNT(*) AS soni, AVG(ball) AS o'rta
FROM talabalar
GROUP BY shahar, kurs;
HAVING β GROUP BY filtri
-- 10 dan ko'p talabasi bo'lgan shaharlar
SELECT shahar, COUNT(*) AS soni
FROM talabalar
GROUP BY shahar
HAVING COUNT(*) > 10;
-- O'rta bali 75 dan yuqori kurslar
SELECT kurs, AVG(ball) AS o'rta_ball
FROM talabalar
GROUP BY kurs
HAVING AVG(ball) > 75
ORDER BY o'rta_ball DESC;
WHERE vs HAVING
-- WHERE - guruhlashdan OLDIN filtrlaydi
SELECT kurs, AVG(ball)
FROM talabalar
WHERE yosh > 18 -- avval filtr
GROUP BY kurs
HAVING AVG(ball) > 70; -- keyin guruhlaydi
-- To'g'ri tartib: SELECT β FROM β WHERE β GROUP BY β HAVING β ORDER BY β LIMIT
ROLLUP
-- Oraliq yig'indilar bilan
SELECT shahar, kurs, SUM(ball)
FROM talabalar
GROUP BY ROLLUP(shahar, kurs);