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

Postgres:明確ですが、1つの列のみです

    1つ(またはn)の列のみを区別するには:

    select distinct on (name)
        name, col1, col2
    from names
    

    これにより、名前を含むすべての行が返されます。返される行を制御する場合は、注文する必要があります:

    select distinct on (name)
        name, col1, col2
    from names
    order by name, col1
    

    col1で並べ替えると、最初の行が返されます。

    distinct on

    SELECT DISTINCT ON(expression [、...])は、指定された式が等しいと評価される行の各セットの最初の行のみを保持します。 DISTINCT ON式は、ORDER BYの場合と同じルールを使用して解釈されます(上記を参照)。各セットの「最初の行」は、目的の行が最初に表示されるようにORDER BYを使用しない限り、予測できないことに注意してください。

    DISTINCT ON式は、左端のORDERBY式と一致する必要があります。 ORDER BY句には通常、各DISTINCTONグループ内の行の目的の優先順位を決定する追加の式が含まれます。



    1. SQL比較演算子

    2. Oracleでregexp_replaceによってコンマ区切りのリストから重複を削除するにはどうすればよいですか?

    3. ハートビートを使用したPostgreSQLの高可用性の追跡

    4. PostgreSQLのスキーマを使用したHibernateおよびマルチテナントデータベース