- Beschrijving
- Monstertabel : orders
- Voorbeeld : selecteer met distinct op twee kolommen
- Presentatie van bovenstaande query :
- Voorbeeld : selecteer met distinct op drie kolommen
- Beeld van bovenstaande query :
- Voorbeeld : selecteer met distinct op alle kolommen van de eerste query
- Presentatie van bovenstaande query :
- Selecteren met distinct op meerdere kolommen en order by-clausule
- Count() functie en selecteer met distinct op meerdere kolommen
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.