Description
複数のフィールドもDISTINCT句で追加することが可能です。 DISTINCTは、選択されたフィールドがすべて同じであるそれらの行を削除します。
ここで、ordersテーブルでagent_code=’A002’のいくつかの選択した列の簡単なクエリです
サンプルテーブル:受注
SQL コード:
SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';
出力:
上の図は、同じエージェントコード、注文金額とcust_codeは受注テーブルに複数回表示されていることを示しています。
例:2つの列で区別して選択する
注文テーブルから同一の行(2つの列agent_codeとord_amountに基づいて)を一度取得するには、次のSQL文を使用できます:
SQLコード:
SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';
出力します。
Pictorial presentation of above query :
例: select with distinct on three columns
To get the identical rows (based on three columns agent_code, ord_amount and cust_code) once from the ‘orders’ table ,The following sql statement can be used :
SQLコード:
SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';
出力:
上記のクエリの絵表示:
例:最初のクエリのすべての列で明確に選択
同一の行(4列のAgent_Code、Ord_Amount、Cust_CodeおよびOrd_Num)を一度’ orders ‘ テーブルから取得するには、以下のSQL文は使用可能です。
select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';
出力:
上記の出力では、エージェントコード、ord_amount、cust_codeおよびord_numに同じ行がないため、すべての行は’A002’であることが返されています。
上記クエリの図解 :
Select with distinct on multiple columns and order by clause
複数の列で区別するSELECT文にorder by節を使用することができます。 以下はその例です。
SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;
Output:
Count() function and select with distinct on multiple columns
あなたは、異なる行をカウントするために複数の列で区別して select 文で count() 関数を使用することができます。 以下はその例です。
select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');
出力:
ここで示されているSQLステートメントの出力は、Oracle Database 10g Express Editionを使用して取得されます。