sql >> データベース >  >> RDS >> Oracle

ORACLE Select Distinctは、多くの列と場所を返します

    これらの2つの列(nameとcol1)だけを選択するだけで十分な場合は、次を使用できます。

    select 
        distinct x.name, x.col1
      from table_name x
      where x.col1 = 2;
    

    または

    select 
        x.name, x.col1
      from table_name x
      where x.col1 = 2
      group by (x.name, x.col1);  
    

    すべての値が必要であるが、取得した基準を満たす複数のレコードのどれを取得してもかまわない場合(Dan 221またはDan21 3など)、これを使用できます(順序に基づいてこれらのレコードの最初に記録されます。基準):

    select xx.name, xx.col1, xx.col2, xx.col3
      from (select 
          x.name, x.col1, x.col2, x.col3, dense_rank() over (partition by x.name order by x.name, x.col1, x.col2, x.col3) rnk
        from table_name x
        where x.col1 = 2) xx
      where xx.rnk = 1;
    


    1. 結合されたクエリの欠落レコード

    2. pymysql callproc()は、後続の選択に影響を与えるようです

    3. CakePHPの1つのモデルに複数のデータベースを動的に使用する方法

    4. MySQLDATETIMEDIFFクエリ