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

同じデータの組み合わせを持つ行に同じIDを割り当てます

    クエリ時に実行します:

    with t (year, folder, seq_no) as (values
        (1973,5,11),
        (2010,4,7),
        (1973,11,12),
        (1973,5,11),
        (1500,4,4),
        (2010,4,7)
    )
    select
        dense_rank() over (order by year, folder, seq_no) as id,
        year, folder, seq_no,
        count(*) over (partition by year, folder, seq_no) as "count"
    from t
    ;
     id | year | folder | seq_no | count 
    ----+------+--------+--------+-------
      1 | 1500 |      4 |      4 |     1
      2 | 1973 |      5 |     11 |     2
      2 | 1973 |      5 |     11 |     2
      3 | 1973 |     11 |     12 |     1
      4 | 2010 |      4 |      7 |     2
      4 | 2010 |      4 |      7 |     2
    


    1. countサブクエリ、内部結合、およびグループを使用したクエリ

    2. PostgreSQLのパフォーマンスの監視と監査-トップリソース

    3. sp_プレフィックスはまだノーノーですか?

    4. Oracle で列を行に変換する