SELECT DISTINCT
Ushbu qo'llanmada siz so'rov orqali qaytarilgan natijalar to'plamidan takroriy qatorlarni olib tashlash uchun PostgreSQL SELECT DISTINCT bandidan qanday foydalanishni o'rganasiz.
Natijalar to'plamidan takroriy qatorlarni olib tashlash uchun SELECT bandida DISTINCT ishlatiladi. Ushbu DISTINCT bandi har bir takroriy guruh uchun bitta qatorni saqlaydi, tanlangan ro'yxatidagi bir yoki bir nechta ustunlarga qo'llanilishi mumkin.
Quyida DISTINCT bandning sintaksisi tasvirlangan:
SELECT
DISTINCT column1
FROM
table_name;Ushbu bayonotda ustundagi qiymatlar column1 dublikatni baholash uchun ishlatiladi.
Agar siz bir nechta ustunlarni belgilasangiz, DISTINCT band ushbu ustunlar qiymatlarining kombinatsiyasi asosida dublikatni baholaydi.
SELECT
DISTINCT column1, column2
FROM
table_name;Bunday holda, ikki nusxadagi qiymatlarni baholash uchun ikkala column1 va column2 ustunlardagi qiymatlar kombinatsiyasi qo'llaniladi.
PostgreSQL shuningdek, DISTINCT ON (expression) quyidagi sintaksisdan foydalangan holda har bir dublikat guruhining "birinchi" qatorini saqlashni ta'minlaydi:
SELECT
DISTINCT ON (column1) column_alias,
column2
FROM
table_name
ORDER BY
column1,
column2;SELECT bayonotdan qaytarilgan qatorlar tartibi aniqlanmagan, shuning uchun dublikatning har bir guruhining "birinchi" qatori ham aniqlanmagan.
DISTINCT ON(expression) natijalar to'plamini bashorat qilish uchun har doim ORDER BY banddan foydalanish yaxshi amaliyotdir .
E'tibor bering, DISTINCT ON ifodasi ORDER BY bandidagi eng chap ifodaga mos kelishi kerak.
PostgreSQL SELECT DISTINCT misollari
SELECT DISTINCT misollariKeling, distinct_demo yangi jadval yaratamiz va unga DISTINCT bandni mashq qilish uchun ma'lumotlarni kiritamiz.
E'tibor bering, siz keyingi qo'llanmada jadval yaratish va jadvalga ma'lumotlarni kiritishni o'rganasiz. Ushbu qo'llanmada siz bayonotlarni bajarish uchun
psqlyokipgAdminda faqat bayonotni bajarasiz.
Birinchidan, id, bcolor, fcolor uchta ustundan iborat distinct_demo jadval yaratish uchun quyidagi CREATE TABLE bayonotdan foydalaning:
CREATE TABLE distinct_demo (
id serial NOT NULL PRIMARY KEY,
bcolor VARCHAR,
fcolor VARCHAR
);Ikkinchidan, quyidagi INSERT ibora yordamida distinct_demo jadvalga bir nechta qatorlarni kiriting :
INSERT INTO distinct_demo (bcolor, fcolor)
VALUES
('red', 'red'),
('red', 'red'),
('red', NULL),
(NULL, 'red'),
('red', 'green'),
('red', 'blue'),
('green', 'red'),
('green', 'blue'),
('green', 'green'),
('blue', 'red'),
('blue', 'green'),
('blue', 'blue');Uchinchidan, SELECT bayonot yordamida distinct_demo jadvaldagi ma'lumotlarni so'rang:
SELECT
id,
bcolor,
fcolor
FROM
distinct_demo ;
PostgreSQL DISTINCT bitta ustunli misol
DISTINCT bitta ustunli misolQuyidagi bayonot t1 jadvaldagi bcolor ustundagi noyob qiymatlarni tanlaydi va natija to'plamini ORDER BY banddan foydalangan holda alifbo tartibida tartiblaydi .
SELECT
DISTINCT bcolor
FROM
distinct_demo
ORDER BY
bcolor;
PostgreSQL DISTINCT bir nechta ustunlar
DISTINCT bir nechta ustunlarQuyidagi bayonot bir nechta ustunlarda DISTINCT banddan qanday foydalanishni ko'rsatadi:
SELECT
DISTINCT bcolor,
fcolor
FROM
distinct_demo
ORDER BY
bcolor,
fcolor;
Biz bandda ikkala bcolor va fcolor ustunlarni ko'rsatganimiz sababli, PostgreSQL SELECT DISTINCT satrlarning o'ziga xosligini baholash uchun ikkala bcolor va fcolor ustunlardagi qiymatlarni birlashtirdi.
So'rov distinct_demo jadvaldan bcolor va fcolor ning noyob kombinatsiyasini qaytaradi. E'tibor bering, distinct_demo jadvalda ikkala satr bcolor va fcolor ustunlar red qiymatiga ega. Ikkala ustunga ham DISTINCT qo'llaganimizda, natijalar to'plamidan bitta satr olib tashlandi, chunki u dublikatdir.
PostgreSQL DISTINCT ON misoli
DISTINCT ON misoliQuyidagi ibora bcolor va fcolor orqali o'rnatilgan natijani tartiblaydi va keyin har bir takroriy guruh uchun qaytarilgan natijalar to'plamida birinchi qatorni saqlaydi.
SELECT
DISTINCT ON (bcolor) bcolor,
fcolor
FROM
distinct_demo
ORDER BY
bcolor,
fcolor;Mana natija:

Ushbu qo'llanmada siz so'rov orqali qaytarilgan ikki nusxadagi qatorlarni olib tashlash uchun PostgreSQL SELECT DISTINCT bayonotidan qanday foydalanishni o'rgandingiz .
Last updated
Was this helpful?