У меня есть таблица, которая имеет различные исторические данные о том, где определенные люди работали и жили за 50-летний период. Чтобы упростить, каждая запись имеет дату, person_id, address_id и логическую работу true или false, а второе логическое место жительства - true или false. Данные достаточно спорадические, что матчей мало. Человек мог бы жить на своем месте работы, хотя это может быть проигнорировано для целей этого вопроса.Поиск конкретных данных в течение 365 дней
Я хочу найти каждый экземпляр, если есть рабочий адрес и адрес проживания в течение одного года для человека. Конечно, человек мог бы сменить работу и места жительства на 50-летний период.
Резюме информации можно посмотреть по адресу: https://secure-shore-68966.herokuapp.com/connections.
Рельсы программа на https://bitbucket.org/MtnBiker/crores5/
Есть ли способ сделать это с помощью SQL/Active Record? Я могу видеть повторение каждой записи и поиск любых случаев с плюс или минус шесть месяцев каждой записи для этого человека. Но я надеюсь на путь SQL. Я хочу нарисовать линию на карте между каждой парой.
Таблица: CREATE TABLE public.years ( id integer NOT NULL DEFAULT nextval('years_id_seq'::regclass), year_date date, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, resto boolean, resid boolean, source text, person_id integer, location_id integer, title character varying, notes text, resto_name character varying, ref_link character varying, ref_url character varying, snippet_file_name character varying, snippet_content_type character varying, snippet_file_size integer, snippet_updated_at timestamp without time zone, CONSTRAINT years_pkey PRIMARY KEY (id), CONSTRAINT fk_rails_8fc1813509 FOREIGN KEY (person_id) REFERENCES public.people (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_rails_e1624dbb3f FOREIGN KEY (location_id) REFERENCES public.locations (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )
Таким образом, для любого person_id
записи, если resid
является true
есть resto
true
в пределах плюс или минус шесть месяцев (year_date
).
Пробег в течение одного года является формой (CurrentDate) или определенной датой? – Zeina