Уклањање дупликата (DISTINCT)¶
У неким случајевима желимо да елиминишемо дупликате из резултата
тј. желимо да добијемо само јединствене вредности унутар неке
колоне. То се постиже навођењем DISTINCT уз име колоне.
Приказати сва различита имена ученика (без понављања).
SELECT DISTINCT ime
FROM ucenik;
Извршавањем упита добија се следећи резултат:
ime |
|---|
Петар |
Милица |
Лидија |
Ана |
Јован |
… |
Ако бисмо желели да имена буду сортирана по азбучном реду, додали
бисмо клаузулу ORDER BY.
SELECT DISTINCT ime
FROM ucenik
ORDER BY ime;
Извршавањем упита добија се следећи резултат:
ime |
|---|
Адам |
Адријана |
Аида |
Алекса |
Александра |
… |
Наравно, клаузула DISTICT може да се комбинује са селекцијом (клаузулом
WHERE).
Приказати сва различита женска имена ученица школе.
SELECT DISTINCT ime
FROM ucenik
WHERE pol = 'ж';
Извршавањем упита добија се следећи резултат:
ime |
|---|
Милица |
Лидија |
Ана |
Јована |
Гордана |
… |
Као што се може претпоставити, DISTINCT је применљив на различите
типове података.
Приказати све различите датуме у којима ученик са идентификатором 1 има изостанке.
SELECT DISTINCT datum
FROM izostanak
WHERE id_ucenik = 1;
Извршавањем упита добија се следећи резултат:
datum |
|---|
2020-10-01 |
2020-10-16 |
2020-12-08 |
2021-02-11 |
2021-02-16 |
… |
DISTINCT може да се примени и на више колона.
Приказати сва одељења у школи.
SELECT DISTINCT razred, odeljenje
FROM ucenik;
Извршавањем упита добија се следећи резултат:
razred |
odeljenje |
|---|---|
1 |
1 |
2 |
1 |
1 |
2 |
3 |
1 |
1 |
3 |
… |
… |
DISTINCT се односи на пар који чини ознака разреда и ознака одељења.