AXV

SQL: ORDER BY, LIMIT va OFFSET

ORDER BY, ASC, DESC, TOP, OFFSET–FETCH, LIMIT

9-sinfBusiness Intelligence5-hafta · 14-dars

Bugun nimalarni o'rganamiz?

ORDER BY

Natijani tartiblash

Bir nechta ustun

Birlamchi va ikkilamchi saralash

TOP va OFFSET

Cheklash va sahifalash

Takrorlash

WHERE Soni < 5 OR Narx < 100000 nechta qator qaytaradi (Soni: 25, 12, 4, 3, 18, 6; Narx: 80k, 150k, 1.9M, 7.5M, 120k, 3.2M)?

Sichqoncha (80k), Monitor (4) va Noutbuk (3).
01

ORDER BY

Natijani tartiblash

ORDER BY qaerda ishlaydi

FROM jadval WHERE filtr SELECTustunlar ORDER BYtartib Tartiblash eng oxirgi qadamlardan biri

ASC va DESC


SELECT Nomi, Narx
FROM Mahsulotlar
ORDER BY Narx ASC;

SELECT Nomi, Narx
FROM Mahsulotlar
ORDER BY Narx DESC;
  
ASC yozilmasa ham o'sish tartibi bo'ladi. DESC da avval Noutbuk (7 500 000), oxirida Sichqoncha (80 000).

Mini-test

ORDER BY Narx DESC da birinchi qaysi mahsulot chiqadi?

DESC — kamayish tartibi: eng qimmat birinchi.
02

Bir nechta ustun

Birlamchi va ikkilamchi saralash

Ikki bosqichli tartib

1: KategoriyaA-Z Tengbo'lsa: Narx DESC: qimmatbirinchi Natija tayyor Ikkinchi ustun faqat teng qiymatlarda ishlaydi

Ko'p ustunli saralash


SELECT Kategoriya, Nomi, Narx
FROM Mahsulotlar
ORDER BY Kategoriya ASC, Narx DESC;

SELECT Nomi, Narx * Soni AS Qiymat
FROM Mahsulotlar
WHERE Kategoriya <> N'Ekran'
ORDER BY Qiymat DESC;
  
Birinchi so'rovda Aksessuar ichida: Klaviatura, Quloqchin, Sichqoncha (narxi kamayish tartibida); Kompyuter ichida: Noutbuk, Planshet.

Mini-test

ORDER BY Kategoriya, Narx DESC da Narx DESC qachon ishlaydi?

Ikkinchi ustun faqat birinchisi teng bo'lgan qatorlarni tartiblaydi.
03

TOP va OFFSET

Cheklash va sahifalash

Sahifalash mantiqi

ORDER BYNarx DESC OFFSET 2:2 ta o'tkaz FETCH NEXT2: 2 ta ol 2-sahifatayyor OFFSET = (sahifa - 1) * sahifa hajmi

TOP, OFFSET-FETCH, LIMIT


SELECT TOP 3 Nomi, Narx
FROM Mahsulotlar
ORDER BY Narx DESC;

SELECT Nomi, Narx
FROM Mahsulotlar
ORDER BY Narx DESC
OFFSET 2 ROWS
FETCH NEXT 2 ROWS ONLY;

-- PostgreSQL / MySQL / SQLite:
-- ... ORDER BY Narx DESC LIMIT 2 OFFSET 2;
  
Birinchi so'rov: Noutbuk, Planshet, Monitor. Ikkinchi so'rov 2 ta qatorni o'tkazib: Monitor, Klaviatura (2-sahifa, hajmi 2).

Mini-test

Sahifa hajmi 5 bo'lsa, 3-sahifa uchun OFFSET nechta qatorni o'tkazadi?

(3 - 1) * 5 = 10.

TOP va OFFSET–FETCH

TOP

Tez va oddiy: TOP 3 birinchi 3 qatorni oladi
VS

OFFSET–FETCH

Sahifalash uchun: o'tkazib yuboradi va keyingi qismni oladi

OFFSET–FETCH faqat ORDER BY bilan ishlaydi.

Saralash atamalari. Bosing

ASC

bosing

O'sish tartibi: 1, 2, 3; A-Z (standart)

DESC

bosing

Kamayish tartibi: 3, 2, 1; Z-A

OFFSET

bosing

Natija boshidan o'tkazib yuboriladigan qatorlar soni

FETCH / LIMIT

bosing

Qaytariladigan qatorlar soni

Eng qimmat N ta mahsulot

1. Tartiblang

ORDER BY Narx DESC — eng qimmat birinchi.

2. Cheklang

TOP 3 yoki OFFSET ... FETCH qo'shing.

3. Tekshiring

Natijada Noutbuk, Planshet, Monitor bo'lishi kerak.

Cheklash usullari

DBMSBirinchi N qatorSahifalash
SQL ServerTOP NOFFSET n ROWS FETCH NEXT m ROWS ONLY
PostgreSQLLIMIT NLIMIT m OFFSET n
MySQLLIMIT NLIMIT m OFFSET n
SQLiteLIMIT NLIMIT m OFFSET n

Pastga bosing: so'rov tartibi

So'rov qismlarining yozilish tartibi

  1. SELECT — ustunlar (TOP shu yerda).
  2. FROM va WHERE — jadval va filtr.
  3. ORDER BY, keyin OFFSET ... FETCH — eng oxirida.

Tartib qo'shamiz


SELECT Nomi, Narx
FROM Mahsulotlar;
  

Tartib qo'shamiz


SELECT TOP 3 Nomi, Narx
FROM Mahsulotlar
ORDER BY Narx DESC;
  

Raqamlarda saralash

0
tartib turi: ASC, DESC
0
eng qimmat mahsulotlar: TOP 3
0
2-sahifada o'tkaziladigan qator (hajm 2)

Tartibsiz TOP qaysi qatorlar kelishini kafolatlamaydi.

Amaliy topshiriq 20 daqiqa

OsonNarx bo'yicha saralash: Mahsulotlarni narxi bo'yicha o'sish tartibida, so'ng kamayish tartibida chiqaring.
OsonEng qimmat 3 ta: Eng qimmat 3 ta mahsulot nomi va narxini chiqaring.
O'rtaKo'p ustunli saralash: Avval kategoriya bo'yicha alifbo tartibida, kategoriya ichida narx bo'yicha kamayish tartibida chiqaring.
Qiyin2-sahifa: Mahsulotlarni narxi kamayish tartibida sahifalang (sahifa hajmi 2). 2-sahifani chiqaring.
BonusOmbor qiymati reytingi: Aksessuar bo'lmagan mahsulotlardan ombor qiymati (Narx * Soni) bo'yicha eng yuqori 2 tasini taxallus bilan chiqaring.

Dars xulosasi

ORDER BY

ASC (standart) va DESC bilan tartiblash.

Ko'p ustun

Birinchi teng bo'lsa, keyingisi ishlaydi.

Sahifalash

TOP, OFFSET ... FETCH, LIMIT ... OFFSET.

Uyga vazifa: saralash va sahifalash bo'yicha 8 ta so'rov.

Keyingi dars: SQL: NULL va ma'lumot turlari

NULL bilan ishlash, IS NULL, COALESCE, turlar

5-hafta · 15-dars