PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Присвояване на същия идентификатор на редове с една и съща комбинация от данни

Направете го по време на заявка:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо премахването на индекс отнема повече време от създаването му?

  2. Postgresql csv импортиране, което пропуска редове

  3. Postgresql отдалечен достъп без pg_hba.conf запис за хост

  4. как да коригирате OperationalError:(psycopg2.OperationalError) сървърът затвори връзката неочаквано

  5. Къде PostgreSQL съхранява базата данни?