SQL SELECT met DISTINCT op meerdere kolommen

author
2 minutes, 0 seconds Read

Beschrijving

Meerdere velden kunnen ook worden toegevoegd met de DISTINCT-clausule. DISTINCT elimineert de rijen waarvan alle geselecteerde velden identiek zijn.

Hier volgt een eenvoudige query op enkele geselecteerde kolommen in de tabel orders waarbij agent_code=’A002′

Monstertabel : orders

SQL Code:

SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';

Uitvoer:

Het bovenstaande plaatje laat zien dat dezelfde agent_code, ord_bedrag en cust_code meer dan eens in de tabel orders voorkomt.

Voorbeeld : selecteer met distinct op twee kolommen

Om identieke rijen (op basis van twee kolommen agent_code en ord_amount) eenmaal uit de tabel met de bestellingen te halen, kan het volgende sql-statement worden gebruikt:

SQL Code:

SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';

Uitvoer:

Presentatie van bovenstaande query :

Voorbeeld : selecteer met distinct op drie kolommen

Om identieke rijen (gebaseerd op drie kolommen agent_code, ord_amount en cust_code) uit de tabel “orders” te halen, kan het volgende sql-instructie worden gebruikt:

SQL code:

 SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';

Uitvoer:

Beeld van bovenstaande query :

Voorbeeld : selecteer met distinct op alle kolommen van de eerste query

Om identieke rijen (op basis van vier kolommen agent_code, ord_amount, cust_code en ord_num) te verkrijgen uit de tabel “orders”, kan het volgende sql statement worden gebruikt:

select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';

Uitvoer:

In de bovenstaande uitvoer zijn alle rijen waarvan de agent_code ‘A002’ is, geretourneerd omdat er geen identieke rijen zijn op agent_code, ord_amount, cust_code en ord_num. Zie de volgende presentatie :

Presentatie van bovenstaande query :

Selecteren met distinct op meerdere kolommen en order by-clausule

U kunt een order by-clausule gebruiken in select statement met distinct op meerdere kolommen. Hier is een voorbeeld:

 SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;

Uitvoer:

Count() functie en selecteer met distinct op meerdere kolommen

U kunt de count() functie gebruiken in een select statement met distinct op meerdere kolommen om de afzonderlijke rijen te tellen. Hier is een voorbeeld:

 select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');

Uitvoer:

De hier getoonde uitvoer van de genoemde SQL-instructie is verkregen met Oracle Database 10g Express Edition.

Similar Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.