19
アクセスの連続する最小日数を決定するSQL?
次のユーザー履歴テーブルには、特定のユーザーが(24時間UTC期間に)Webサイトにアクセスした日ごとに1つのレコードが含まれています。何千ものレコードがありますが、ユーザーあたり1日1レコードのみです。ユーザーがその日のWebサイトにアクセスしていない場合、レコードは生成されません。 ID UserId CreationDate ------ ------ ------------ 750997 12 2009-07-07 18:42:20.723 750998 15 2009-07-07 18:42:20.927 751000 19 2009-07-07 18:42:22.283 私が探しているのは、パフォーマンスの良いこのテーブルのSQLクエリです。これにより、1日を逃すことなく(n)日間、どのユーザーIDがWebサイトにアクセスしたかがわかります。 言い換えると、このテーブルに連続する(前日または後)日付の(n)レコードを持っているユーザーの数は?シーケンスから欠落している日がある場合、シーケンスは壊れており、1から再開する必要があります。ここでは、ギャップのない連続した日数を達成したユーザーを探しています。 このクエリと特定のスタックオーバーフローバッジの類似点は、もちろん偶然です。