Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вывод следующих записей после определенного значения / 6 сообщений из 6, страница 1 из 1
09.11.2020, 15:34
    #40016536
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод следующих записей после определенного значения
Всем привет.

Подскажите, пожалуйста, как правильно написать запрос, чтобы он выводил только следующие записи (дату и значение) после значения 101.

Т.е. в ниже приведенной таблице значение 101 встречается четыре раза. Вывод должен быть следующим:

28.08.2020 8
28.10.2020 73
31.10.2020 77
03.11.2020 25

Пример таблицы:

[img=]
...
Рейтинг: 0 / 0
09.11.2020, 15:38
    #40016538
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод следующих записей после определенного значения
Код: sql
1.
2.
3.
4.
5.
WITH cte AS ( SELECT *, LAG(value) OVER (ORDER BY [Date]) lag_value
              FROM src_table )
SELECT *
FROM cte
WHERE lag_value = 101



PS. Запрос (да и сама задача) требуют, чтобы [Date] было уникальным. Либо существовало дополнительное выражение сортировки, обеспечивающее уникальность. При показанных данных это условие уникальности не выполняется, а на физическое расположение записей кивать не следует - оно фэйковое.
...
Рейтинг: 0 / 0
09.11.2020, 15:51
    #40016547
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод следующих записей после определенного значения
Akina,

Да, есть уникальное значение, столбец Id. T.e. получается необходимо заменить с
Код: sql
1.
 (ORDER BY [Date])

на
Код: sql
1.
(ORDER BY [Id])



[img=]
...
Рейтинг: 0 / 0
09.11.2020, 20:18
    #40016631
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод следующих записей после определенного значения
Caxa_ASS
Да, есть уникальное значение, столбец Id. T.e. получается необходимо заменить
Если "предыдущая/следующая" при сортировке по ID соответствует задаче - да.
...
Рейтинг: 0 / 0
15.11.2020, 10:48
    #40018443
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод следующих записей после определенного значения
Akina, спасибо за ответ, все работает, но есть не большой нюанс, который я не заметил.

Подскажите, пожалуйста, как модернизировать данный скрипт, так, чтобы он выводил следующие записи после значения 101, но только те следующие записи, которые меньше или равны числу 101.

Буду благодарен за помощь.
...
Рейтинг: 0 / 0
15.11.2020, 11:31
    #40018446
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод следующих записей после определенного значения
Код: sql
1.
2.
3.
4.
5.
6.
WITH cte AS ( SELECT *, LAG(value) OVER (ORDER BY [Date]) lag_value
              FROM src_table )
SELECT *
FROM cte
WHERE lag_value = 101 
           and  value <= lag_value
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вывод следующих записей после определенного значения / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]