SQL SELECT med DISTINCT på flera kolumner

author
2 minutes, 11 seconds Read

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.

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.