64 / 100

GREATEST

Eng katta qiymatni tanlash

Kirish: Ushbu qo'llanmada siz PostgreSQL GREATEST() funksiyasi yordamida berilgan ifodalar yoki qiymatlar ro'yxatidan eng kattasini tanlab olishni o'rganasiz.

PostgreSQL GREATEST() funksiyasiga kirish

GREATEST() funksiyasi bir nechta qiymatlar ro'yxatini qabul qiladi va ular orasidan eng kattasini qaytaradi.

Funksiyaning sintaksisi:

query.sql
GREATEST (expression1, expression2, ...)
  • PostgreSQLda GREATEST() funksiyasi NULL qiymatlarni e'tiborsiz qoldiradi (inkor qiladi). Faqat barcha argumentlar NULL bo'lsagina NULL qaytaradi.
  • Funksiyaga uzatilgan barcha ifodalar bir-biriga mos ma'lumot turida bo'lishi kerak.

Oddiy misollar

Raqamlar orasidan eng kattasini topish:

query.sql
SELECT GREATEST(1, 2, 3) AS highest;
-- 3

Alifbo tartibi bo'yicha eng oxirgi matnni topish:

query.sql
SELECT GREATEST('A', 'B', 'C') AS largest;
-- C

Mantiqiy qiymatlarni solishtirish (true qiymati false dan katta deb hisoblanadi):

query.sql
SELECT GREATEST(true, false) AS largest;
-- true (t)

Sanalardan eng so'nggisini (kechki sana) topish:

query.sql
SELECT GREATEST('2025-01-01', '2025-02-01', '2025-03-01', NULL) AS latest;
-- 2025-03-01

E'tibor bering, NULL qiymati natijaga xalaqit bermadi va inkor qilindi.

Jadvallar bilan amaliy qo'llash

Yetkazib berish (shipping) narxini hisoblash talab qilinsin:

  • Og'irlikning har bir kilogrammi/funti uchun $5;
  • Biroq eng minimal yetkazib berish narxi $10 dan kam bo'lmasligi lozim.

Ushbu shartni bajarish va kamida $10 kafolatlangan narxni o'rnatish uchun GREATEST() funksiyasidan foydalanamiz:

query.sql
SELECT
  product_name,
  gross_weight,
  GREATEST(gross_weight * 5, 10) AS shipping_cost
FROM
  products
ORDER BY
  product_name;

Natija:

matn
        product_name        | gross_weight | shipping_cost
----------------------------+--------------+---------------
 Apple AirPods Pro 3        |         0.01 |            10
 Apple iMac 24"             |         9.92 |         49.60
 Apple iPad Pro 12.9        |         1.42 |            10
 Apple iPhone 15            |         0.38 |            10
 Apple iPhone 15 Pro Max    |         0.49 |            10
 Apple Watch Series 9       |         0.09 |            10
 Bose SoundLink Max         |         6.61 |         33.05
 Dell Inspiron 27           |        17.64 |         88.20

Agar vazn bo'yicha hisoblangan narx $10 dan kam bo'lsa, GREATEST(narx, 10) avtomatik tarzda 10 ni tanlaydi.

Xulosa

  • Bir nechta qiymatlar orasidan eng kattasini tanlab olish uchun GREATEST() funksiyasidan foydalaning.
  • GREATEST() funksiyasi ro'yxatdagi NULL qiymatlarni inobatga olmaydi.
  • Minimal chegarani (pastki limit) kafolatlash uchun GREATEST(hisob, minimal_chegara) usulidan foydalanish juda qulaydir.