119. Kategoriya bo'yicha top 3 (LATERAL)
QiyinSubquery'larUzum
Har bir kategoriya uchun eng qimmat 3 ta mahsulotni chiqaring.
Buni CROSS JOIN LATERAL ichida ORDER BY price DESC, id LIMIT 3 bilan
yozing — window funksiyasiz.
Mahsuloti 3 tadan kam bo'lgan kategoriya bor qanchasi bilan chiqadi; umuman
mahsulotsiz kategoriya esa natijaga tushmaydi (CROSS JOIN bo'lgani
uchun).
Narxi teng bo'lsa id kichigi oldinda turadi.
Ustunlar: category, name, price.
Saralash: category alifbo, keyin price kamayish, keyin name alifbo.
categories: id INT PK, title VARCHAR
products: id INT PK, category_id INT, name VARCHAR, price NUMERIC(12,2)
Jadval: categories
| Ustun | Turi |
|---|---|
| id | INT PK |
| title | VARCHAR(40) |
Jadval: products
| Ustun | Turi |
|---|---|
| id | INT PK |
| category_id | INT |
| name | VARCHAR(60) |
| price | NUMERIC(12,2) |
Namuna ma'lumotlar
sample
categories
| idINT | titleVARCHAR(40) |
|---|---|
| 3 | Kitob |
products
| idINT | category_idINT | nameVARCHAR(60) | priceNUMERIC(12,2) |
|---|---|---|---|
| 10 | 3 | Roman | 85000 |
| 11 | 3 | Darslik | 120000 |
Kutilgan natija
| name | price | category |
|---|---|---|
| Darslik | 120000 | Kitob |
| Roman | 85000 | Kitob |
sample-full
categories
| idINT | titleVARCHAR(40) |
|---|---|
| 1 | Elektronika |
| 2 | Kiyim |
| 3 | Kitob |
| 4 | Sport |
| 5 | Kosmetika |
products
| idINT | category_idINT | nameVARCHAR(60) | priceNUMERIC(12,2) |
|---|---|---|---|
| 1 | 1 | Smartfon A54 | 3900000 |
| 2 | 1 | Noutbuk 15 | 9800000 |
| 3 | 1 | Simsiz quloqchin | 450000 |
| 4 | 1 | Televizor 43 | 4800000 |
| 5 | 1 | Sichqoncha USB | 95000 |
| 6 | 2 | Kurtka | 890000 |
| 7 | 2 | Ko'ylak | 320000 |
| 8 | 2 | Shim | 410000 |
| 9 | 2 | Krossovka | 890000 |
| 10 | 3 | Roman | 85000 |
| 11 | 3 | Darslik | 120000 |
| 12 | 4 | Velosiped | 1800000 |
| 13 | 4 | Gantel | 350000 |
| 14 | 4 | Yugurish yo'lakchasi | 7500000 |
| 15 | 4 | Koptok | 95000 |
Kutilgan natija
| name | price | category |
|---|---|---|
| Noutbuk 15 | 9800000 | Elektronika |
| Televizor 43 | 4800000 | Elektronika |
| Smartfon A54 | 3900000 | Elektronika |
| Darslik | 120000 | Kitob |
| Roman | 85000 | Kitob |
| Krossovka | 890000 | Kiyim |
| Kurtka | 890000 | Kiyim |
| Shim | 410000 | Kiyim |
| Yugurish yo'lakchasi | 7500000 | Sport |
| Velosiped | 1800000 | Sport |
| Gantel | 350000 | Sport |
sample-extra
categories
| idINT | titleVARCHAR(40) |
|---|---|
| 8 | Kosmetika |
| 1 | Kitob |
products
| idINT | category_idINT | nameVARCHAR(60) | priceNUMERIC(12,2) |
|---|---|---|---|
| 1 | 1 | Shim | 8500500 |
| 2 | 1 | Gantel | 9800000 |
Kutilgan natija
| name | price | category |
|---|---|---|
| Gantel | 9800000 | Kitob |
| Shim | 8500500 | Kitob |
O'xshash masalalar
Konsol
Natijani ko'rish uchun so'rovni ishga tushiring.
