как идентифицировать или распознать шаблон в данных с помощью SQL - PullRequest
6 голосов
/ 02 марта 2012

Мне интересно, возможно ли это? Я пытаюсь идентифицировать записи, в которых есть закономерность в данных.

Например, таблица с полями ID , DATA_DTE (только ежедневные записи), SPEED .

Я бы хотел определить, когда поле СКОРОСТЬ уменьшается как минимум на 4 и удерживается не менее 3 дней подряд

**ID**..**DATA_DTE**...**SPEED**
1........Jan-1............8
1........Jan-2............9
1........Jan-3............4
1........Jan-4............4
1........Jan-5............4
1........Jan-6............7
1........Jan-7............8
1........Jan-8............9

Исходя из вышесказанного, я хочу, чтобы запрос SQL возвращал идентификатор. Например, "1" в приведенном выше примере.

Кто-нибудь знает, как я могу настроить свой SQL-запрос для возврата этих идентификаторов, которые соответствуют шаблону, подобному этому? Я буду запускать его в MS Access 2003.

1 Ответ

3 голосов
/ 02 марта 2012

Я не знаю MS Access, но он мог бы сделать работу:

SELECT DISTINCT id
FROM       data AS d1
INNER JOIN data AS d2 ON d1.id = d2.id AND DateAdd("d",+1,d1.data_dte) = d2.data_dte
INNER JOIN data AS d3 ON d1.id = d3.id AND DateAdd("d",+2,d1.data_dte) = d3.data_dte
INNER JOIN data AS d4 ON d1.id = d4.id AND DateAdd("d",+3,d1.date_dte) = d4.data_dte
WHERE d1.speed - d2.speed >= 4
  AND d1.speed - d3.speed >= 4
  AND d1.speed - d4.speed >= 4
...