Наступна таблиця історії користувачів містить один запис на кожен день, коли певний користувач має доступ до веб-сайту (за 24-годинний UTC). Він має багато тисяч записів, але лише один запис на день на кожного користувача. Якщо користувач не отримав доступ до веб-сайту за цей день, запис не буде створено.
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-запит на цій таблиці з хорошою продуктивністю , який підказує мені, які користувачі користувалися веб-сайтом протягом (n) безперервних днів, не пропускаючи день.
Іншими словами, скільки користувачів мають (n) записів у цій таблиці з послідовними (день-до-дня або після-день) датами ? Якщо в послідовності відсутній якийсь день, послідовність порушується і повинна знову перезапуститись на 1; ми шукаємо користувачів, які досягли безперервної кількості днів тут без прогалин.
Будь-яка схожість між цим запитом і певним значком переповнення стека , звичайно, випадкова .. :)