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

イベントで最大のシーケンシャルストリークを取得

    あなたの本能は、イベントがゼロの行を見て、それらを処理するのに適しています。ウィンドウ関数でサブクエリを使用して、ゼロイベント日の間の「ギャップ」を取得し、その外部のクエリで、次のように必要なレコードを取得できます。

    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. SQL Server(T-SQL)で添付ファイル付きの電子メールを送信する

    2. より多くのテーブルから一意の最小値を選択する方法

    3. Mysqlマスターマスターレプリケーション

    4. SpringでJDBCforClientDetailsS​​erviceConfigurerを使用してクライアントを追加するにはどうすればよいですか?