Я нашел много stackoverflow QnAs около последовательных дней.
Все ответы слишком короткие для меня, чтобы понять, что происходит.последовательных дней в sql
Для конкретности, я составить модель (или таблицу)
(я использую PostgreSQL, если это имеет значение.)
CREATE TABLE work (
id integer NOT NULL,
user_id integer NOT NULL,
arrived_at timestamp with time zone NOT NULL
);
insert into work(user_id, arrived_at) values(1, '01/03/2011');
insert into work(user_id, arrived_at) values(1, '01/04/2011');
(в простейшей форме) Для данный пользователь, я хочу найти последний ряд дат.
(Моя конечная цель) Для данного пользователя я хочу найти его последовательные рабочие дни.
Если он пришел на работу вчера, он все еще (на сегодняшний день) имеет шанс работать в течение нескольких дней подряд. Поэтому я показываю ему несколько дней подряд.
Но если он пропустил вчера, его последовательные дни будут либо 0, либо 1 в зависимости от того, пришел он сегодня или нет.
Скажите сегодня, 8-й день.
3 * 5 6 7 * = 3 days (5 to 7)
3 * 5 6 7 8 = 4 days (5 to 8)
3 4 5 * 7 * = 1 day (7 to 7)
3 * * * * * = 0 day
3 * * * * 8 = 1 day (8 to 8)
Интересный вопрос ... пожалуйста, вы можете добавить схему таблицы? –
Данные схемы и образца (как «CREATE TABLE» и «INSERT's») и ожидаемые результаты. –
Пожалуйста, добавьте реальные данные образца DDL +. Никаких сокращенных обозначений, пожалуйста. – joop