Tutustuminen DISTINCT:iin Oraclessa
Oraclessa tietokantaan kuuluva DISTINCT-avainsana erottaa tai suodattaa SELECT-lauseen palauttaman tulostulosjoukon kaksoiskappaleet (result joukko sisältää SELECT-lauseessa olevat sarakkeet) siten, että kyselyn palauttama sarake tai sarakkeet sisältävät kaikki arvot tai tietueet, jotka eivät ole päällekkäisiä ja jotka ovat keskenään yksilöllisiä, koska DISTINCT-avainsana vertaa kyselyn palauttamassa tulosjoukossa olevien sarakkeiden jokaista arvoa toisiinsa.
Syntaksi
Start Your Free Data Science Course
Hadoop, Data Science, Statistics & others
Katsomme nyt Oraclen distinct-avainsanan syntaksia. Meillä on tässä tapauksessa kaksi vaihtoehtoa syntaksin suhteen. Ensimmäinen syntaksi on käyttää distinct-avainsanaa ilman ehtoja ja toinen syntaksi on käyttää distinct-avainsanaa ehtojen kanssa.
Syntaksi ilman ehtoja: Select DISTINCT(expressions) from table_names;
Syntaksi ehdon kanssa:Select DISTINCT(expressions) from table_names ;
Parametrit
Tarkastelemme nyt kahdessa edellä mainitussa syntaksissa käytettäviä eri parametreja.
- lausekkeet: annamme sarakkeiden nimet tai lausekkeet, jotka haluamme suorittaa.
- table_names: Annamme taulukoiden nimet, joista haluamme tietueet. Tärkeää huomioitavaa tässä on, että lausekkeen jälkeen tulee olla vähintään yksi taulukkonimi.
- : Se on valinnainen Jos annamme where-ehdon, niin haemme arvot kyselyn suorittamisen jälkeen vain, jos mainittu ehto täyttyy.
Huomautus: Tärkeää huomioitavaa on, että DISTINCT-avainsana pitää nolla-arvoa myös yksilöllisenä arvona. Joten jos sarakkeessa on nolla-arvoja ja käytämme DISTINCT-avainsanaa uniikkien arvojen hakemiseen, se näyttää myös NULL-arvon tulosteessa.
Miten DISTINCT-arvoa käytetään Oraclessa?
Olemme nyt keskustelleet siitä, mikä on DISTINCT-avainsana Oraclessa, DISTINCT-avainsanan syntaksista ja syntaksissa käytetyistä eri parametreista.
Nyt tarkastelemme erilaisia esimerkkejä oppiaksemme, miten DISTINCTiä käytetään Oraclessa tehokkaasti. Ennen kuin siirrymme esimerkkeihin, käytämme tietokantaan jo luotua EMPLOYEE-taulua. Taulukossa on viisi saraketta, jotka ovat NAME, VEHICLE_NAME, EMPLOYEE_ID, VEHICLE_ID ja CITY. Alla on kuvakaappaus työntekijätaulukossa olevista arvoista. Kysely, jota käytämme tähän, on perus SELECT-lause
SELECT * from employee;
Suoritettaessa SQL developerissa saamme kaikki arvot alla esitetyllä tavalla.
Output: Employee table
Aloitetaan nyt esimerkeistä.
1. Yksilölliset arvot sarakkeessa ilman ehtoa
Tässä esimerkissä käytämme DISTINCT:iä löytämään taulukon tietyn sarakkeen yksilölliset arvot ilman ehtoja. Esimerkkinä etsitään työntekijätaulukon ajoneuvo-sarakkeessa olevat yksilölliset arvot. Kysely on esitetty alla:
Code:
select DISTINCT(vehicle_name) from employee;
Output:
Yllä olevassa kyselyssä, kuten näet, olemme antaneet sekä sarakkeen nimen että taulukon nimen. Suorittaessamme yllä olevan kyselyn SQL developerissa saamme alla olevan tulosteen.
2. Yksilölliset arvot sarakkeessa ehdolla
Tässä esimerkissä etsimme yksilöllisiä arvoja sarakkeesta aivan kuten edellisessä esimerkissä, mutta pienellä muutoksella. Tässä aiomme poimia ainutlaatuiset arvot jonkin ehdon perusteella. Haetaan esimerkiksi työntekijätaulukon ajoneuvon nimi -sarakkeen yksilölliset arvot, kun kaupunki ei ole Kolkata. Samaa koskeva kysely on esitetty alla.
Code:
select DISTINCT(VEHICLE_NAME) from employee where CITY != 'KOLKATA';
Output:
Jos näet yllä olevan kyselyn, kyselyn pitäisi palauttaa arvot, jotka täyttävät where-ehdon. Kun suoritamme yllä olevan kyselyn SQL developerissa, saamme alla olevan tulosteen.
Kuten näet, edellisessä esimerkissä meillä oli kuusi uniikkia arvoa, kun taas toisessa esimerkissä meillä on viisi uniikkia arvoa, koska olimme lisänneet toiseen esimerkkiin tietyn ehdon.
3. Uniikit arvot useista sarakkeista
Tässä esimerkissä etsimme uniikkeja arvoja useista sarakkeista DISTINCT:tä käyttämällä. Aiemmissa esimerkeissä olimme siis käyttäneet yksittäisiä sarakkeita, mutta tässä tapauksessa käytämme useita sarakkeita. Oletetaan esimerkiksi, että haluamme löytää sekä ajoneuvon nimen että kaupungin yksilölliset arvot, ja tulosten pitäisi olla nousevassa järjestyksessä sarakkeen kaupunki perusteella. Katsotaanpa tätä varten alla olevaa kyselyä.
Code:
select DISTINCT VEHICLE_NAME,CITY from employee ORDER BY CITY ASC;
Output:
Tulos:
Yllä olevassa kyselyssä tiedot poimitaan ensin nousevassa järjestyksessä sarakkeen kaupunki perusteella, ja sen jälkeen sarakkeiden ajoneuvon nimi ja kaupunki molempien sarakkeiden molempien arvojen avulla saadaan yksilölliset parit. Kun suoritamme yllä olevan kyselyn SQL developerissa, saamme alla olevan tulosteen.
4. DISTINCT NULL-arvojen kanssa
Aiemmin artikkelissa olimme käsitelleet sitä, että DISTINCT käsittelee NULL-arvoja yksilöllisinä arvoina, joten jos sarakkeessa on nolla-arvoja. Sitä käsitellään yksilöllisenä arvona. Esimerkiksi CITY-sarakkeessa on nolla-arvoja, jotka näet artikkelin alussa esitetyssä kuvakaappauksessa, jossa näkyvät kaikki työntekijätaulukon arvot. Sovellamme siis DISTINCT-menetelmää sarakkeeseen CITY selvittääksemme nolla-arvojen vaikutuksen tulokseen. Samaa koskeva kysely on esitetty alla.
Code:
select DISTINCT CITY from employee;
Output:
Suorittaessamme yllä olevan kyselyn SQL developer -ohjelmassa saamme alla olevan tulosteen.
Kuten näemme, tulosteessa näkyy nolla-arvo erillisenä arvona. Tämä osoittaa siis, että DISTINCT käsittelee null-arvoa yksilöllisenä arvona.
Johtopäätös – DISTINCT Oraclessa
Tässä artikkelissa käsiteltiin DISTINCT-avainsanaa Oraclessa, DISTINCTin käyttämiseen kyselyissä käytettäviä syntakseja, näissä syntakseissa käytettäviä parametreja ja sen jälkeen erilaisten esimerkkien avulla tulimme tietoisiksi siitä, miten voimme käyttää DISTINCTiä Oraclessa ratkaistaksemme tarvitsemamme tehtävät.
Suositellut artikkelit
Tämä on opas DISTINCT:stä Oraclessa. Tässä keskustelemme DISTINCT-avainsanasta Oraclessa, DISTINCTin käyttämiseen käytetyistä syntakseista koodeissa ja tulosteissa. Voit myös tutustua muihin aiheeseen liittyviin artikkeleihimme saadaksesi lisätietoja –
- Joins in Oracle
- Mitä on Oracle Database
- Oraclen merkkijonofunktiot
- Oraclen Warehouse Builder
- Oclen parhaiden versioiden opas
- Oraksen järjestys MySQL:ssä | Miten toimii?
- Ohje tähän avainsanaan C#:ssa