- Kuvaus
- Esimerkkitaulukko : orders
- Esimerkki : select with distinct on two columns
- Kuvallinen esitys yllä olevasta kyselystä :
- Esimerkki : select with distinct on three columns
- Kuvallinen esitys yllä olevasta kyselystä :
- Esimerkki : select with distinct on all columns of the first query
- Kuvallinen esitys yllä olevasta kyselystä :
- Select with distinct on multiple columns and order by clause
- Count()-funktio ja select with distinct on multiple columns
Kuvaus
Lausekkeella DISTINCT voidaan lisätä myös useita kenttiä. DISTINCT poistaa ne rivit, joissa kaikki valitut kentät ovat identtisiä.
Tässä on yksinkertainen kysely joillekin valituille sarakkeille orders-taulussa, jossa agent_code=’A002′
Esimerkkitaulukko : orders
SQL-koodi:
SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';
Tulos:
Yllä olevasta kuvasta nähdään, että tilaukset-taulussa esiintyy useammin kuin kerran sama agent_code-, ord_amount- ja cust_code-koodi.
Esimerkki : select with distinct on two columns
Jos haluat saada identtiset rivit (kahden sarakkeen agent_code ja ord_amount perusteella) kerran orders-taulusta ,voidaan käyttää seuraavaa sql-lauseketta :
SQL-koodi:
SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';
Output:
Kuvallinen esitys yllä olevasta kyselystä :
Esimerkki : select with distinct on three columns
Jos halutaan saada identtiset rivit (perustuen kolmeen sarakkeeseen agent_code, ord_amount ja cust_code) kerran ’orders’ -taulusta ,voidaan käyttää seuraavaa sql-lauseketta :
SQL-koodi:
SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';
Tulos:
Kuvallinen esitys yllä olevasta kyselystä :
Esimerkki : select with distinct on all columns of the first query
Tällaisten identtisten rivien saamiseksi kertaalleen (neljään sarakkeeseen perustuen agentti_koodi (agenttikoodi), tilausmäärä (ord_amount), asiakaskohtainen tilausmäärä (cust_koodi), ja tilauksen määrä (ord_num)) taulukosta ”tilaukset” voidaan käyttää seuraavaa sql-lauseen lauseketta :
select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';
Tulos:
Yllä olevassa tulosteessa on palautettu kaikki rivit, joiden agenttikoodi on ’A002’, koska agenttikoodin, ord-määrän, asiakaskoodin ja ord-numeron kohdalla ei ole identtisiä rivejä. Katso seuraava esitys :
Kuvallinen esitys yllä olevasta kyselystä :
Select with distinct on multiple columns and order by clause
Voit käyttää order by -lauseketta select-lauseessa, jossa on distinct on multiple columns. Tässä on esimerkki :
SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;
Output:
Count()-funktio ja select with distinct on multiple columns
Voit käyttää count()-funktiota select-lauseessa, jossa on distinct on multiple columns, erillisten rivien laskemiseen. Tässä on esimerkki :
select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');
Tulos:
Tässä esitetyn SQL-lauseen tulokset on otettu käyttämällä Oracle Database 10g Express Editionia.