|
Mustaqil ish Bajardi: Toshkent-2023 Mavzu: sqlda jarayonlar va standart funksiyalar
|
bet | 1/3 | Sana | 09.12.2023 | Hajmi | 67,1 Kb. | | #114652 |
Bog'liq Qq
O'zbekiston Respublikasi Raqamli Texnologiyalar Vazirligi
Muhammad Al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti
Mustaqil ish
Bajardi:
Toshkent-2023
Mavzu: SQLda jarayonlar va standart funksiyalar
Reja:
1. SQL tilida agregat funksiyalar
2. Agregat funksiyalar argumentlari
3.SQL tilida agregat funksiyalar.
Agregat funksiyalar qo‘llanishi
Agregat (yoki STATIK) funksiyalar, sonli yoki xisoblanuvchi ustunlar Bilan ishlaydi. Agregat funksiya argumenti butun ustun bo‘lib, bita qiymat qaytaradi.
Bu funksiyalarni ko‘rib chiqamiz:
1. SUM() - Ustundagi xamma qiymatlar summasini xisoblaydi.
2. AVG() - Ustundagi xamma qiymatlar o‘rtasi qiymatini xisoblaydi.
3. MIN() - Ustundagi xamma qiymatlar eng kichigini aniqlaydi.
4. MAX() - Ustundagi xamma qiymatlar eng kattasini aniqlaydi.
5. COUNT() - Ustundagi qiymatlar sonini xisoblaydi.
6. COUNT(*) - So‘rov natijalari jadvalidagi satrlar sonini xisoblaydi.
7. Komandalar sintaksisi ko‘rinishi:
-- SUM.............( --- ifoda................) ......................
-- DISTINCT - ustun nomi —
-- AVG ------------- ( --- ifoda ---------------- ) ----------------------
-- DISTINCT -- ustun nomi —
-- MIN.............( ifoda ) ...........................................
-- MAX ------------- ( ifoda ) -------------------------------------------
-- COUNT ------------- ( --------------------- ustun nomi) ---------------
-- DISTINCT --
-- COUNT(*)...................................................................
Agregatlash argumenti bo‘lib ustun nomidan tashqari ixtiyoriy matematik ifoda xizmat qilishi mumkin. Misol uchun quyidagi so‘rovda: Sizni kompaniyangizda reja bajarilishi o‘rtacha protsenti qancha?
Select avg(100 * (sales/quota))
FROM SALESREPS
YAna bir shakl: Sizni kompaniyangizda reja bajarilishi o‘rtacha protsenti qancha? Select avg(100 * (sales/quota)) procent from salesreps
Bu xolda ustun nomi ma’noliroq, lekin bu asosiysi emas. Ustunlar summasini xisoblab ko‘ramiz. SUM() funksiyasini qo‘llaymiz, ustun sonli bo‘lishi kerak! Masalan, quyidagicha: Kompaniya xizmatchilari sotuvlar xajmi rejadagi va xaqiqiy o‘rta qiymati qanchaga teng?
Select sum(quota), sum(sales) from salesreps
AVG() agregatlash funksiyasiga yana bir necha sodda misollarni ko‘ramiz.
Masalan: "ACI" ishlab chiqaruvchi mollari o‘rtacha narxini xisoblang.
Select avg(price) from products where mfr_id = 'aci'
Ekstremumlarni topish funksiyalari yani MIN(), MAX() funksiyalarini ko‘ramiz.Bu funksiyalar sonli ustunlar, sanalar va satrli o‘zgaruvchilar Bilan ishlaydi. Eng soda qo‘llanishi sonlar bilan ishlash.
Masalan quyidagi so‘rov beramiz: Eng ko‘p va kam sotuvlar rejadagi xajmi?
8. Select min(quota), max(quota)
9. from salesreps
10. Bu sonlarni o‘z ichiga olgan ustunlardir. YAna bir so‘rov beramiz: Bazadagi buyurtmalarning ichida eng oldin berilgan so‘rov sanasi?
11. Select min(order_date)
12. from orders
13. Satrlar Bilan ishlaganda xar xil SQL serverlardagi kodirovkalar xar xil natija berishi mumkin. YOzuvlar sonini sanash uchun COUNT() qoTlanadi. Bu funksiya son qiymat qaytaradi
Masalan: Kompaniyamiz mijozlari soni nechta?
14. Select count(cust_num)
15. From customers
16. YAna bir so‘rov: Qancha xizmatchi rejani ortig‘i bilan bajardi?
17. Select count(name)
18. from salesreps
19. where sales > quota
20. COUNT(*) funksiyasi qiymatlar sonini emas, satrlar sonini xisoblaydi. Quyidagicha yozish mumkin:
21. SELECT COUNT(*)
22. FROM ORDERS
23. WHERE AMOUNT > 250
24. NULL qiymat va agregat funksiyalar
Ustun qiymati NULL bo‘lsa AVG(), MIN(), MAX(), SUM(), COUNT() funksiyalari qanday qiymat qaytaradi? ANSI/ISO qoidalariga ko‘ra "agregat funksiyalar NULL qiymatni e’tiborga olmaydi"! Quyidagi so‘rov ko‘ramiz:
SELECT COUNT(*), COUNT (SALES), COUNT (QUOTA)
FROM SALESREPS
Jadval bita lekin so‘rovdagi qiymatlar xar xil. CHunki QUOTA maydoni- NULL qiymatni o‘z ichiga oladi. COUNT funksiyasi COUNT(maydon) ko‘rinishda bo‘lsa NULL qiymatni e’tiborga olmaydi, COUNT(*) bo‘lsa satrlar umumiy sonini xsoblaydi. MIN(), MAX() funksiyalari xam NULL qiymatni e’tiborga olmaydi, lekin AVG(), SUM() - NULL qiymat mavjud bo‘lsa chalkashtiradi. Masalan, quyidagi so‘rov:
SELECT SUM(SALES), SUM(QUOTA), (SUM(SALES) - SUM(QUOTA)), (SUM(SALES - QUOTA))
FROM SALESREPS
|
| |