Я ищу способ проверить, монотонно ли увеличиваются значения в таблице для определенного подмножества строк.
Таблица содержит столбцы id, name, measure_date и value. Для всех строк с одинаковым именем строки должны быть отсортированы по measure_date, и необходимо проверить, монотонно ли увеличивается столбец значений для этих отсортированных строк.
Как результат, мне нужен идентификатор и флаг, который равен 1, если строка с идентификатором нарушает моноту, 0 в противном случае.
Пример данных может быть:
id name meas_date value
1 name1 2018/01/01 1
2 name1 2018/01/02 2
3 name2 2018/01/04 2
4 name1 2018/01/03 1
5 name1 2018/01/04 5
6 name2 2018/01/05 4
7 name2 2018/01/06 2
8 name1 2018/01/05 2
Желаемый результат:
id flag
1 0
2 0
3 0
4 1
5 0
6 0
7 1
8 1
Если возможно, результат вычисляется без PL / SQL, только чистый SQL.
Я думаю, что мне нужно какое-то внутреннее объединение таблицы с самим собой, объединяясь по множеству отсортированных подмножеств, где каждое подмножество представляет одно возможное значение столбца имени. В объединенной таблице мне нужно вычислить разницу между столбцами значений каждой строки с ее предшественником, и если разница равна нулю или ниже, это должно привести к значению флага = 1.
Я использую Oracle 11g.
Большое спасибо,
Christian