Variant № 3
1. SQL tilida agregat (yig`uvchi) funksiyalarni ishlatish.
2. Natijalarni guruxlash.
3. Guruhlarni tanlash.
Javob.
1-savol. SQL turli xil toifadagi ko'plab o'rnatilgan funktsiyalarni belgilaydi, ular orasida bir nechta satrlar ustunlari qiymatlarida ishlaydigan va bitta qiymatni qaytaradigan agregat funktsiyalari alohida o'rin egallaydi. Jadval ustunlari va ularning ustidagi ifodalarning natijalari umumlashtiruvchi funktsiyalarning argumentlari bo'lishi mumkin. Umumlashtiruvchi funktsiyalar boshqa arifmetik ifodalarga kiritilishi mumkin. Quyidagi jadvalda eng ko'p ishlatiladigan standart birlashgan agregat funktsiyalari ko'rsatilgan.
Yagona agregat funktsiyasining umumiy formati quyidagicha:
function_name ([ALL | DISTINCT] ifoda)
bu erda DISTINCT funktsiya faqat argumentning har xil qiymatlarini hisobga olish kerakligini va BARChA - barcha qiymatlarni, shu jumladan takroriy qiymatlarni (bu parametr sukut bo'yicha ishlatiladi) hisobga olish kerakligini bildiradi. Masalan, 1, 1, 1 va 3 qiymatlari bo'lgan ustun satrlari uchun DISTINCT kalit so'zli AVG funktsiyasi 2 ni, agar ALL kalit so'z bo'lsa, u 1.5 ni qaytaradi.
Umumlashtirish vazifalari SELECT va HAVING iboralarida qo'llaniladi. Bu erda biz ularni SELECT gapida qanday ishlatilishini ko'rib chiqamiz. Bunday holda, funktsiya argumentidagi ifoda SELECT iborasining kirish jadvalining barcha qatorlariga qo'llaniladi. Bundan tashqari, keyingi bo'limlarda muhokama qilinadigan GROUP BY iborasi bo'lmaganda, tanlangan vazifalarda va jadval ustunlarida (yoki ular bilan ifodalangan) SELECT so'zlaridan foydalanib bo'lmaydi.
COUNT funktsiyasi ikkita formatga ega. Birinchi holda, kirish jadvalidagi satrlar soni qaytariladi, ikkinchi holda, kirish jadvalidagi argument qiymatlari soni:
Ushbu funktsiyadan foydalanishning eng oddiy usuli - jadvaldagi qatorlar sonini hisoblash (barchasi yoki belgilangan shartni qondiradiganlar). Buning uchun birinchi sintaksis variant ishlatiladi.
Talab: Ma'lumotlar bazasida mavjud bo'lgan mahsulotlar turlari soni.
TANLASH (*) AS "Mahsulotlar soni"
FROM Mahsuloti
COUNT funktsiyasining ikkinchi sintaksisida bitta ustun nomini argument sifatida ishlatish mumkin. Bunday holda, kirish jadvalining ushbu ustunidagi yoki faqat takrorlanmaydigan qiymatlarning soni hisoblanadi (DISTINCT kalit so'zidan foydalanib).
So'rov: Xaridor jadvalidagi turli xil nomlarning soni.
TANLASH (DISTINCT FNAME)
Qolgan birlashgan agregat funktsiyalaridan foydalanish COUNT ga o'xshashdir, bundan tashqari MIN va MAX funktsiyalari uchun DISTINCT va ALL kalit so'zlaridan foydalanish mantiqiy emas. COUNT, MAX va MIN funktsiyalarida belgilarga qo'shimcha ravishda sonlardan tashqari foydalanish mumkin. Agar agregat funktsiyaning argumentida qiymatlar bo'lmasa, COUNT funktsiyasi 0 ni, qolganlari esa NULLni qaytaradi.
SELECT MAX (OrdDate)
FROM
SQL tilida quyidagi ma'lumotlarni tanlash uchun so'rovlarni shakllantirish:
Ma'lumotlar bazasida mavjud bo'lgan ma'lumotlarni umumlashtirish uchun SQL-da agregat vazifalari keltirilgan. Umumlashtiruvchi funktsiya ma'lumotlarning butun ustunini argument sifatida oladi va ma'lum bir tarzda bu ustunni umumlashtiradigan bitta qiymatni qaytaradi.
Masalan, AVG () agregat funktsiyasi argument sifatida raqamlar ustunini oladi va ularning o'rtacha qiymatini hisoblaydi.
Zelenogradda yashovchining jon boshiga o'rtacha daromadini hisoblash uchun sizga quyidagi so'rov kerak bo'ladi.
SQL-da har xil turdagi ma'lumotlarga ega bo'lish imkonini beradigan oltita agregat funktsiyalari mavjud (1-rasm):
- SUM () ustundagi barcha qiymatlarning yig'indisini hisoblaydi;
- AVG () ustundagi qiymatlarning o'rtacha qiymatini hisoblaydi;
- MIN () ustundagi barcha qiymatlarning eng kichigini topadi;
- MAX () ustundagi barcha qiymatlarning eng kattasini topadi;
- COUNT () ustundagi qiymatlar sonini hisoblaydi;
- COUNT (*) so'rov natijalari jadvalidagi qatorlar sonini hisoblaydi.
Umumiy funktsiyaning argumenti avvalgi misoldagi kabi oddiy ustun nomi yoki jon boshiga soliqni hisoblashni belgilaydigan quyidagi so'rovda ko'rsatilgan ibora bo'lishi mumkin:
AVGNI TANLASH (SUMD * 0.13)
Ushbu so'rov bajarilganda PERSON jadvalining har bir qatori uchun (SUMD * 0.13) qiymatlarni o'z ichiga olgan vaqtinchalik ustun yaratiladi va keyin vaqtincha ustunning o'rtacha qiymati hisoblanadi.
Zelenogradning barcha aholisining umumiy daromadini SUM agregat funktsiyasi yordamida hisoblash mumkin:
SHAXSIDAN YANGI (YoQING) TANLASH
Umumlashtirish funktsiyasidan bir nechta manba jadvallariga qo'shilish natijasida olingan natijalar jadvaliga muvofiq hisoblash uchun foydalanish mumkin. Masalan, "stipendiya" deb nomlangan manbadan rezidentlar olgan daromadlarning umumiy miqdorini hisoblashingiz mumkin:
Qaytarilgan ustunlar qatorida har qanday ustun nomining o'rniga siz agregat funktsiyasini belgilashingiz mumkin. Masalan, u ikkita umumlashtiruvchi funktsiyalarning qiymatlari qo'shilgan yoki olib tashlanadigan ifodaga kiritilishi mumkin:
SELECT MAX (SUMD) -MIN (SUMD) SHAXSNINGDAN
Ammo, agregat funktsiyasi boshqa agregat funktsiyasi uchun argument bo'la olmaydi, ya'ni. o'rnatilgan agregat funktsiyalari taqiqlanadi.
Bundan tashqari, yig'ilgan funktsiyalar va oddiy ustun nomlari bir vaqtning o'zida qaytarilgan ustunlar ro'yxatida ishlatilishi mumkin emas, chunki bu mantiqiy emas, masalan:
FOYDALANIShNI TANLASH, SHAXSNING SUM (SUMD)
Bu erda ro'yxatning birinchi elementi ma'lumotlar bazasi ma'lumotlar bazasida bir nechta satrlardan iborat va har bir rezident uchun bitta qatordan iborat jadval yaratilishini bildiradi. Ro'yxatning ikkinchi elementi SUMD ustunining qiymatlari yig'indisi bo'lgan bitta natija qiymatini olish uchun DBMS-dan so'raydi. Ushbu ikkita ko'rsatma bir-biriga zid keladi, bu xatoga olib keladi.
Yuqorida aytilganlar, quyi so'rovlar va guruhlarga ega bo'lgan so'rovlarni qayta ishlash holatlariga nisbatan qo'llanilmaydi.
intizom ustunining qiymati bo'yicha. Biz ba'zi guruh qiymatlarini hisoblashimiz mumkin bo'lgan 4 ta guruhni olamiz, masalan, guruhdagi to'rlar soni, "Bal" ustunining maksimal yoki minimal qiymati. 5.7-jadval. Umumiy vazifalar
Do'stlaringiz bilan baham: |