SQL SELECT with DISTINCT on multiple columns

author
1 minute, 53 seconds Read

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.

Similar Posts

Vastaa

Sähköpostiosoitettasi ei julkaista.