sql >> Databáze >  >> RDS >> PostgreSQL

Postgres:Definování nejdelší série (ve dnech) na vývojáře

Existuje trik, jak to udělat. Pokud odečtete rostoucí posloupnost čísel od dat, budou pro data, která jsou sekvenční, konstantní. To pak můžeme použít pro definování skupin pro každého vývojáře.

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;

Pokud víte, že pro každé datum existuje maximálně jeden záznam, můžete použít row_number() místo dense_rank() a count(*) místo count(distinct MRDate) .




  1. automatické doplňování zobrazuje všechny položky, neprovádí žádné vyhledávání

  2. Jak rozšířit Joomla! do mého vlastního souboru PHP

  3. Dynamické kontingenční sloupce v SQL Server

  4. Výhody a zabezpečení služby relační databáze Amazon