SQL Fiddle
Oracle 11g R2 Настройка схемы:
CREATE TABLE TEST (datetime, value) AS
SELECT DATE '2015-01-01', 3 FROM DUAL
UNION ALL SELECT DATE '2015-01-02', 4 FROM DUAL
UNION ALL SELECT DATE '2015-01-03', 3 FROM DUAL
UNION ALL SELECT DATE '2015-01-04', 21 FROM DUAL
UNION ALL SELECT DATE '2015-01-05', 4 FROM DUAL
UNION ALL SELECT DATE '2015-01-06', 4 FROM DUAL
UNION ALL SELECT DATE '2015-01-07', -1 FROM DUAL
UNION ALL SELECT DATE '2015-01-08', 3 FROM DUAL
UNION ALL SELECT DATE '2015-01-09', 21 FROM DUAL
UNION ALL SELECT DATE '2015-01-10', -1 FROM DUAL
UNION ALL SELECT DATE '2015-01-11', 4 FROM DUAL
UNION ALL SELECT DATE '2015-01-12', 4 FROM DUAL
UNION ALL SELECT DATE '2015-01-13', 8 FROM DUAL
UNION ALL SELECT DATE '2015-01-14', 3 FROM DUAL
UNION ALL SELECT DATE '2015-01-15', 3 FROM DUAL
UNION ALL SELECT DATE '2015-01-16', -1 FROM DUAL
UNION ALL SELECT DATE '2015-01-17', 21 FROM DUAL
UNION ALL SELECT DATE '2015-01-18', -1 FROM DUAL
UNION ALL SELECT DATE '2015-01-19', 4 FROM DUAL
Запрос 1:
SELECT datetime, value
FROM (
SELECT datetime,
LAG(value) OVER (ORDER BY datetime) AS prv,
value,
LEAD(value) OVER (ORDER BY datetime) AS nxt
FROM test
)
WHERE (prv IS NULL OR prv < value)
AND (nxt IS NULL OR nxt < value)
Results:
| DATETIME | VALUE |
|---------------------------|-------|
| January, 02 2015 00:00:00 | 4 |
| January, 04 2015 00:00:00 | 21 |
| January, 09 2015 00:00:00 | 21 |
| January, 13 2015 00:00:00 | 8 |
| January, 17 2015 00:00:00 | 21 |
| January, 19 2015 00:00:00 | 4 |
Нет Идентификатор столбца или подобное? – jarlh
Как вы определяете порядок строк в таблице? –
Если есть действительно только одна колонка, вопрос не имеет смысла. Данные в упорядоченной таблице кучи по своей сути неупорядочены. Ваш запрос неявно требует, чтобы результаты были заказаны, чтобы вы могли посмотреть на значение из «предыдущей» и «следующей» строк. Но ни с чем не приказывать, понятия «предыдущий» и «следующий» не существует. Мы можем написать запрос, который может случиться сегодня с небольшими наборами данных, но он будет прекращать работу в будущем при изменении данных. –