GROUP BY
Ushbu qo'llanmada siz PostgreSQL GROUP BY
bandidan foydalanib, qatorlarni guruhlarga qanday ajratishni o'rganasiz.
GROUP BY
bandi SELECT
iborasidan qaytarilgan qatorlarni guruhlarga ajratadi. Har bir guruh uchun elementlar yig'indisini hisoblash uchun SUM()
yoki guruhlardagi elementlar sonini olish uchun COUNT()
funksiyasini qo'llashingiz mumkin.
Quyidagi bayonot GROUP BY
bandining asosiy sintaksisini ko'rsatadi:
Ushbu sintaksisda:
Birinchidan, guruhlash kerak bo'lgan ustunlarni tanlang, masalan, 1-ustun va 2-ustun va yig'ish funksiyasini qo'llamoqchi bo'lgan ustunlar (3-ustun).
Ikkinchidan,
GROUP BY
bandida guruhlamoqchi bo'lgan ustunlarni sanab o'ting.
Bayonot bandi qatorlarni GROUP BY
bandida ko'rsatilgan ustunlar qiymatlariga ajratadi va har bir guruh uchun qiymatni hisoblab chiqadi.
GROUP BY
bandi bilan SELECT
iborasining boshqa bandlaridan foydalanish mumkin.
PostgreSQL GROUP BY
bandini FROM
va WHERE
bandlaridan keyin va HAVING
SELECT
, DISTINCT
, ORDER BY
va LIMIT
bandlaridan oldin baholaydi.
PostgreSQL GROUP BY
bandiga misollar
GROUP BY
bandiga misollarKeling, namunaviy ma'lumotlar bazasidagi to'lov jadvalini ko'rib chiqaylik.
1. PostgreSQL GROUP BY
dan umumiy funksiya misolisiz foydalanish
GROUP BY
dan umumiy funksiya misolisiz foydalanishGROUP BY
bandidan jamlash funksiyasini qo'llamasdan foydalanishingiz mumkin. Quyidagi so'rov payment
jadvalidan ma'lumotlarni oladi va natijani mijoz identifikatori bo'yicha guruhlaydi.
Bunday holda, GROUP BY
DISTINCT
bandi kabi ishlaydi, u natijalar to'plamidan takroriy qatorlarni olib tashlaydi.
2. SUM()
funktsiyasi misolida PostgreSQL GROUP BY
dan foydalanish
SUM()
funktsiyasi misolida PostgreSQL GROUP BY
dan foydalanishGROUP BY
bandi agregat
funksiya bilan birgalikda ishlatilganda foydali bo'ladi.
Misol uchun, har bir mijoz to'langan umumiy summani tanlash uchun siz payment
jadvalidagi qatorlarni mijoz identifikatori bo'yicha guruhlangan guruhlarga bo'lish uchun GROUP BY
bandidan foydalanasiz.
Har bir guruh uchun siz SUM()
funksiyasidan foydalanib jami summalarni hisoblaysiz.
GROUP BY
bandi mijoz identifikatori bo'yicha o'rnatilgan natijani saralaydi va xuddi shu mijozga tegishli miqdorni qo'shadi. customer_id
har doim o'zgarganda, u qatorni qaytarilgan natijalar to'plamiga qo'shadi.
Quyidagi bayonotda guruhlarni saralash uchun ORDER BY
bandidan GROUP BY
bandidan foydalaniladi:
3. JOIN
bandi bilan PostgreSQL GROUP BY
bandidan foydalanish
JOIN
bandi bilan PostgreSQL GROUP BY
bandidan foydalanishQuyidagi bayonotda GROUP BY
bandidan INNER JOIN
bandi har bir mijoz tomonidan to'langan umumiy miqdorni olish uchun ishlatiladi.
Oldingi misoldan farqli o'laroq, bu so'rov to'lov jadvalini mijozlar jadvali bilan birlashtiradi va mijozlarni nomlari bo'yicha guruhlaydi.
4. COUNT()
funktsiyasi misolida PostgreSQL GROUP BY
dan foydalanish
COUNT()
funktsiyasi misolida PostgreSQL GROUP BY
dan foydalanishHar bir xodim bajargan toʻlov tranzaksiyalari sonini topish uchun siz payment
jadvalidagi qatorlarni staff_id
ustunidagi qiymatlar boʻyicha guruhlaysiz va tranzaksiyalar sonini olish uchun COUNT()
funksiyasidan foydalaning:
GROUP BY
bandi toʻlovdagi qatorlarni guruhlarga ajratadi va ularni staff_id
ustunidagi qiymat boʻyicha guruhlaydi. Har bir guruh uchun COUNT()
funksiyasidan foydalanib, qatorlar sonini qaytaradi.
5. PostgreSQL GROUP BY
-dan bir nechta ustunlar bilan foydalanish
GROUP BY
-dan bir nechta ustunlar bilan foydalanishQuyidagi misol GROUP BY
bandida bir nechta ustunlardan foydalanadi:
Ushbu misolda GROUP BY
bandi to'lov jadvalidagi qatorlarni customer_id
va staff_id
ustunlaridagi qiymatlarga ajratadi. Har bir guruh uchun (customer_id
, staff_id
) SUM()
umumiy miqdorni hisoblab chiqadi.
6. Sana ustuni bilan PostgreSQL GROUP BY
bandidan foydalanish
GROUP BY
bandidan foydalanishpayment_date
vaqt belgisi ustunidir. Toʻlovlarni sanalar boʻyicha guruhlash uchun avval vaqt belgilarini sanaga aylantirish uchun DATE()
funksiyasidan foydalanasiz, soʻngra toʻlovlarni natija sanasi boʻyicha guruhlaysiz:
Ushbu qo'llanmada siz qatorlarni guruhlarga bo'lish va har bir guruhga agregat funksiyasini qo'llash uchun PostgreSQL GROUP BY
bandidan qanday foydalanishni o'rgandingiz.
Last updated