|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
Привет Оч нужна помощь в написании нетривиального запроса Есть таблица формата ниже Нужно оставить только те стоки для столбца Имя, в которых Номер идет по порядку (123), но не обязательно подряд В нашем случае это строки 123 для а и 689 для b Может кто-то сказать как решить такую задачу? Конкретный запрос не обязателен, нужно направление куда копать, т к с Postgre пока не очень nn Имя Номер 1 a 1 2 a 2 3 a 3 4 a 2 5 a 3 6 b 1 7 b 3 8 b 2 9 b 3 10 b 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2017, 19:26 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
serhio_sv, Почему для "а" взяты именно строки 1,2,3, а не 1,4,5 к примеру? Или не оба набора сразу? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2017, 19:54 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
1,4,5 - тоже подходит. т е подходят оба набора сразу. как-то об этом не подумал Но главное найти первое совпадение ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2017, 20:24 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
serhio_sv, with recursive + distinct on ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2017, 20:27 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
p2., анкорные узлы как определять будете? с циклами бороться как планируете? рекурсив WITH - это больше для чистых деревьев, то есть для связных ацикличных графов. А тут больше похоже на несвязанный граф произвольной структуру, допускающий циклы и множественность путей из одной вершины в другую. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2017, 04:35 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
serhio_svПривет Оч нужна помощь в написании нетривиального запроса Есть таблица формата ниже Нужно оставить только те стоки для столбца Имя, в которых Номер идет по порядку (123), но не обязательно подряд В нашем случае это строки 123 для а и 689 для b Т.Е оставить все строки, у которых в предшествующей строке nn меньше текущей ИЛИ в следующей строке nn больше текущей. И имена равны Без SQL элементарная задача. Как на SQL - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2017, 08:35 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
Щукина Аннаанкорные узлы как определять будете?=1 Щукина Аннас циклами бороться как планируете?< ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2017, 09:26 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
p2., ТС нигде не сказал, что последовательности начинаются именно с 1... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2017, 12:17 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
Щукина Аннаначинаются именно с 1...Сделать мин() не проблема. Но автор также не сказал, что последовательность состоит именно из трех элементов. При такой постановке задача не имеет смысла, так как любая отдельная строка сама себе последовательна. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2017, 14:22 |
|
Написание нетривиального запроса
|
|||
---|---|---|---|
#18+
982183Т.Е оставить все строки, у которых в предшествующей строке nn меньше текущей ИЛИ в следующей строке nn больше текущей. И имена равны отличная идея! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2017, 14:35 |
|
|
start [/forum/topic.php?fid=53&fpage=69&tid=1996332]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 149ms |
0 / 0 |