sql >> Database teknologi >  >> RDS >> PostgreSQL

Får maksimal sekventiel streak med begivenheder

Dit instinkt er godt til at se på rækkerne med nul hændelser og arbejde ud af dem. Vi kan bruge en underforespørgsel med en vinduesfunktion til at få "mellemrummene" mellem nul begivenhedsdage, og så i en forespørgsel udenfor tage den post, vi ønsker, som sådan:

select * 
from (
  select date as day_after_streak
   , lag(date) over(order by date asc) as previous_zero_date 
   , date - lag(date) over(order by date asc) as difference
   , date_part('days', date - lag(date) over(order by date asc) ) - 1 as streak_in_days
  from dates

  group by date
  having sum(events) = 0 ) t 
where t.streak_in_days is not null
order by t.streak_in_days desc
limit 1



  1. PHP Fatal fejl:Kald til udefineret funktion mssql_query()

  2. Få sidste ID på indsat række i Oracle DB

  3. Forskellen mellem mysql, mysqladmin, mysqld

  4. PHP &WP:prøv at catch ikke virker, når fejl fra DB er smidt