PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Postgres:Mendefinisikan rentetan terpanjang (dalam hari) per pengembang

Ada trik untuk melakukan ini. Jika Anda mengurangi urutan angka yang meningkat dari tanggal, maka angka tersebut akan konstan untuk tanggal yang berurutan. Kami kemudian dapat menggunakan ini untuk mendefinisikan grup untuk setiap pengembang.

select developer, max(numdays) as maxseq
from (select developer, grp, min(MRDate) as MR_start, max(MRDate) as MR_end,
             count(distinct MRDate) as numdays
      from (select t.*,
                  (MRDate - dense_rank() over (partition by developer order by date)) as grp
            from t
           ) t
      group by developer, grp
     ) t
group by developer;

Jika Anda tahu ada paling banyak satu catatan per tanggal, maka Anda dapat menggunakan row_number() bukannya dense_rank() dan count(*) bukannya count(distinct MRDate) .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gabungkan dua objek JSON di PostgreSQL

  2. Cara menggunakan kursor sisi server dengan psycopg2

  3. `initialize':skema postgres tidak menerima bagian registri:postgres:@ (atau nama host yang buruk?) (URI::InvalidURIError) dengan Docker

  4. Postgres mencegah stempel waktu dengan konversi zona waktu

  5. Kesalahan 'Sertifikat yang ditandatangani sendiri' selama kueri basis data Postgres yang dihosting Heroku dari aplikasi Node.js