Postgresql so’rovlar va buyruqlar. Database va table yaratish. Tabledan ma’lumotlar


-misol: bilan yordamida shartga mos keladigan qatorlarni sanangCOUNT() CASE WHEN


Download 268.41 Kb.
bet7/9
Sana25.10.2023
Hajmi268.41 Kb.
#1721179
1   2   3   4   5   6   7   8   9
Bog'liq
SQL tili yordamida malumotlarni tavsiflash11111

3-misol: bilan yordamida shartga mos keladigan qatorlarni sanangCOUNT() CASE WHEN 


COUNT(CASE WHEN condition THEN column END)Sintaksis shartga mos keladigan qatorlar sonini hisoblash imkonini beradi.
Misol uchun, mahsulotlar jadvalda, har bir mahsulot bir bor list_price. Biz qancha mahsulot "expensive" (ro'yxat narxi 500 dollardan ortiq) yoki boshqa yo'l bilan hisoblashimiz mumkin.
SELECT
COUNT(CASE WHEN list_price >= 500 THEN product_id END) AS expensive_product_count,
COUNT(CASE WHEN list_price < 500 THEN product_id END) AS cheap_product_count
FROM products

expensive_product_count

cheap_product_count

213

108

4-misol: bilan yordamida guruhlardagi qatorlarni hisoblashCOUNT() GROUP BY


COUNT() GROUP BYhar bir guruhda qatorlar sonini topish uchun bilan foydalanish mumkin.
Masalan, mahsulot jadvalida 2016 yildan 2019 yilgacha velosiped modellari mavjud. Velosipedning taqsimlanishini topish uchun biz COUNT(product_id)GROUP BY model_yearhar yilgi mahsulotlar sonini hisoblashimiz mumkin.
SELECT
model_year,
COUNT(product_id) AS product_count
FROM products
GROUP BY model_year
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:

SUM() – Ustundagi xamma qiymatlar summasini xisoblaydi.


AVG() – Ustundagi xamma qiymatlar o‘rtasi qiymatini xisoblaydi.
MIN() – Ustundagi xamma qiymatlar eng kichigini aniqlaydi.
MAX() – Ustundagi xamma qiymatlar eng kattasini aniqlaydi.
COUNT() – Ustundagi qiymatlar sonini xisoblaydi.
COUNT(*) – So‘rov natijalari jadvalidagi satrlar sonini xisoblaydi.

Komandalar sintaksisi ko‘rinishi:


-- SUM ------------- ( --- ifoda ---------------- ) ----------------------
-- DISTINCT – ustun nomi ---
-- AVG ------------- ( --- ifoda ---------------- ) ----------------------
-- DISTINCT -- ustun nomi ---
-- MIN ------------- ( ifoda ) -------------------------------------------
-- MAX ------------- ( ifoda ) -------------------------------------------
-- COUNT ------------- ( --------------------- ustun nomi) ---------------
-- DISTINCT --
-- COUNT(*)

SELECT COUNT(*), COUNT(SALES), COUNT(QUOTA) FROM SALESREPS


Jadval bitta 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 (SUM(SALES)-SUM(QUOTA)) va (SUM(SALES-QUOTA)) ifodalari agar QUOTA, maydoni NULL qiymatga ega bo‘lsa xar xil qiymat qaytaradi. Ya’ni ifoda SUM(ustun qiymati - NULL) Yana NULL qaytaradi!


  1. Download 268.41 Kb.

    Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling