- Beskrivning
- Sampeltabell : orders
- Exempel: select with distinct on two columns
- Presentation av ovanstående fråga :
- Exempel: select with distinct on three columns
- Bildmässig presentation av ovanstående fråga :
- Exempel: välj med distinkt på alla kolumner i den första frågan
- Bildmässig presentation av ovanstående fråga :
- Select med distinkt på flera kolumner och order by-klausul
- Count() funktion och select med distinct på flera kolumner
Beskrivning
Flera fält kan också läggas till med DISTINCT-klausulen. DISTINCT eliminerar de rader där alla valda fält är identiska.
Här är en enkel fråga om några utvalda kolumner i tabellen orders där agent_code=’A002′
Sampeltabell : orders
SQL-kod:
SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';
Output:
Ovanstående bild visar att samma agent_code, ord_amount och cust_code förekommer mer än en gång i tabellen orders.
Exempel: select with distinct on two columns
För att få fram identiska rader (baserade på två kolumner agent_code och ord_amount) en gång från beställningstabellen kan följande sql-anvisning användas :
SQL-kod:
SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';
Output:
Presentation av ovanstående fråga :
Exempel: select with distinct on three columns
För att få fram identiska rader (baserade på de tre kolumnerna agent_code, ord_amount och cust_code) en gång från tabellen ”orders” kan följande SQL-statement användas:
SQL-kod:
SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';
Output:
Bildmässig presentation av ovanstående fråga :
Exempel: välj med distinkt på alla kolumner i den första frågan
För att få fram identiska rader (på fyra kolumner agent_code, ord_amount, cust_code och ord_num) en gång från tabellen ”orders” kan följande SQL-meddelande användas :
select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';
Output:
I ovanstående output har alla rader vars agent_code är ”A002” returnerats eftersom det inte finns några identiska rader på agent_code, ord_amount, cust_code och ord_num. Se följande presentation :
Bildmässig presentation av ovanstående fråga :
Select med distinkt på flera kolumner och order by-klausul
Du kan använda en order by-klausul i select-angivelsen med distinkt på flera kolumner. Här är ett exempel :
SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;
Output:
Count() funktion och select med distinct på flera kolumner
Du kan använda count() funktion i ett select statement med distinct på flera kolumner för att räkna de olika raderna. Här är ett exempel :
select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');
Output:
Output av det nämnda SQL-statementet som visas här är taget med hjälp av Oracle Database 10g Express Edition.