O‘ZBEKISTON RESPUBLIKASI RAQAMLI
TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT
AXBOROT TEXNOLOGIYALARI UNIVERSITETI
SAMARQAND FILIALI
KOMPYUTER INJINIRING MASOFAVIY TA’LIM
FAKULTETI
MA'LUMOTLAR BAZASI
AMALIY SHI
Bajaruvchi: Xamidov Jonibek
Tekshiruvchi:
Akmal Abduvaitov.
Samarqand-2024
Mavzu: SQL agregat funksiyalari. SUM, MIN, MAX, AVG,
COUNT
Kichik yig'indi funktsiyalari, shuningdek, statistik, agregat yoki kichik yig'indi
funktsiyalari deb ataladi. Ushbu funktsiyalar bola uchun qatorlar to'plamini va bitta
qiymatni aylantirishni yakunlaydi. Bunday funktsiyalar beshdan kam:
AVG() Funktsiya o'rtachani aylantiradi.
COUNT() funksiya ustundagi qatorlar sonini aylantiradi.
MAX() funksiya ustundagi eng katta qiymatni aylantiradi.
MIN() Funktsiya ustundagi eng kichik qiymatni aylantiradi.
SUM() funksiya oraliqning yig‘indisi qiymatini aylantiradi.
Bittadan - COUNT () - biz 8-darsda bir-birimizni tanib oldik. Keling, birdaniga
reshtoyu bilan tanishamiz. Aytaylik, biz do‘konimizdagi kitoblarning minimal,
maksimal va o‘rtacha narxini bilmoqchi edik. Faqat narxlar (narxlar) jadvallaridan
siz narxning minimal, maksimal va o'rtacha qiymatini olishingiz kerak. Oddiy
so'rov:
Narxlardan MIN(narx), MAX(narx), AVG(narx) ni tanlang;
Endi bilmoqchimizki, “Budynok druk” pochta xodimi bizga qancha pul olib kelgan
(id=2). Bunday so'rovni yig'ish unchalik oson emas. Keling, tinchlanaylik, yoga
qanday yig'iladi:
1. "Budynok druku" pochta boshlig'i (id=2) so'roviga ko'ra, etkazib berishlar
(kiruvchi) jadvalidan etkazib berish identifikatorlarini (id_incoming) tanlang:
2. Endi, Ta'minot jurnalidagi (jurnal_incoming) jadvallardan siz tovarni
(id_mahsulot) va etkazib berishning 1-bandida topilgan miqdorni tanlashingiz
kerak. Tobto depozitning 1-bandidan so'raladi:
3. Endi hosil bo'lgan jadvalga topilgan mahsulotlarning narxlar jadvallarida
saqlangan narxlarini qo'shishimiz kerak. Shuning uchun biz id_mahsulot elementi
bo'yicha Yetkazib berish jurnali (magazine_incoming) va Narxlar (narxlar)
jadvallarini birlashtirishimiz kerak:
4. paydo bo'lgan stolda, Suma aniq osilgan emas, tobto hisoblangan miqdor.
Bunday bayonotlarni yaratish qobiliyati MySQL-ga yo'naltirildi. Kim uchun
so'rovda nima sanash kerakligi va sanashda nima aybdor ekanligini ko'rsatish
kamroq zarur. Bizning ko't yig'indisi deb nomlangan bunday stovpets bor, va vino
hisoblash twir stovptsív miqdori va narxi bo'ladi. Yangi binoning nomi AS so'zi
bilan tasdiqlangan:
Magazin_incoming.id_mahsuloti, jurnalning_incoming.miqdori, narxlar.narxi,
jurnalning_kirish.miqdori*narxlar.narxini TANLASH JURNALI_KARIShDAN
Xulosa, narxlar QAYERDA jurnali_incoming.id_mahsulot= price.id_mahsulot VA
id=com
5. Yaxshi, bizda kamroq summa qoldi va bilamizki, pul summasiga "Budinok to
Druk" pochta xodimi bizga mol olib keldi. SUM() funksiyasidan foydalanish
sintaksisi:
jadval_nomidan SUM(jadval_nomi) ni tanlang;
Im'ya stovptsya bizga v_domo - summa, va biz yo'q jadval nomi o'qi, shuning
uchun so'rov natijasi bo'lmaydi. Ish nima? Bunday xatti-harakatlar uchun MySQL-
da bayonot mavjud. Berish - tse ovoz berishni so'raydi, qaysi biri noyob nomga
umid qiladi va qaysi biri ma'lumotlar bazasida saqlanishi mumkin, uzoqroq ovoz
berish uchun.
Hujum haqida ogohlantirish sintaksisi:
CREATE VIEW View_name so'rovi AS;
So'rovimizni report_vendor xabariga ko'ra saqlaymiz:
Hisobot_vendorni TANGLASH AS KO'RISH
MAGAZİNE_KARISh.ID_mahsuloti, jurnali_incoming.miqdori, narxlar.narxi,
jurnalning_kirish.miqdori*narxlar.narx AS JURNALI_Kiruvchi_jurnaldan, narxlar
WHERE jurnali_incoming.id_com=product_com );
6. Endi o'qni SUM() yig'indisi funksiyasi yordamida burish mumkin:
report_vendor FROM SUM(summa) ni tanlang;
Axis mi va natijaga erishdi, ammo, buning uchun biz hissalar, qo'shma, ustunlar,
hisoblangan va namoyon bo'lgan g'alaba qozonish imkoniyatiga ega bo'ldik.
Shunday qilib, ba'zida otrimannya uchun natijani boshqa yo'lsiz o'ylash kerak.
Keyin biz ikkita juda muhim mavzuga duch keldik - bu hodisaning asosiy fikrlarini
sanash. Keling, ular haqida hisobotda gaplashaylik.
|