SQL SELECTで複数列をDISTINCTする

author
1 minute, 0 seconds Read

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を使用して取得されます。

Similar Posts

コメントを残す

メールアドレスが公開されることはありません。