[SQL] Różnica między wierszami

0

mam wartości
1)100
2)111
3)122
4)123
5)143
6)145
7)147
8)150
9)151
10)152
11)153
12)155
13)170

i chcę pobrać takie wiersze żeby różnica między nimi była min 10 (lub inna - nie ważne jaka, ale dla przykładu niech będzie 10) - co oznacza
1)100
2)111(111-100)=11 11>=10 - prawda
3)122(122-111)=11 11>=10 - prawda
5)143(143-122)=21 21>=10 - prawda
11)153
13)170
powyższy zbiór wynikowy

jak takie coś zrobić - dla utrudnienia parametr który ma być różnicą nie jest kluczem tabeli czyli nie mogę złączyć tabeli po kluczu na zasadzie tab1.klucz=tab2.klucz+1

nie mam pomysłu na to

0

Sprecyzuj może warunek wyboru, z tego który napisałeś nijak nie wynika dlaczego w zbiorze wynikowym jest liczba 100 (111-100>=10), a nie ma liczby 155 (170-155>=10).

0
bogdans napisał(a)

Sprecyzuj może warunek wyboru, z tego który napisałeś nijak nie wynika dlaczego w zbiorze wynikowym jest liczba 100 (111-100>=10), a nie ma liczby 155 (170-155>=10).

bo to jest nieistotne, tak jest i już i to mało ważne
w bazie są dane z zewnątrz - z programu, który zbiera dane z jakiś tam próbek, nie wiem do końca co i jak i dlaczego, nie interesuje mnie to ja mam to tylko "obrobić"
tabela wygląd +/- tak

ID_PRÓBKI|DATA_GODZINA|STAN|STATUS| i inne

chcę przedstawić na WWW na wykresie stan próbki np od godziny 11 do 14 lub dać włączenie śledzenia zmiany stanu próbki - aby niepotrzebnie nie dawać do canvasa bądź ile danych można stwierdzić że np w skali 1 dla 1px to odległość od poprzedniego 10
czyli

mając takie dane
ID_PRÓBKI|DATA_GODZINA|STAN|STATUS|

10|2009-06-10 1011|11
10|2009-06-10 1021|12
10|2009-06-10 1031|22
10|2009-06-10 1001|24
10|2009-06-10 1011|54

chcąc przedstawić to na wykresie dla danej skali wystarczy, że pobiorę sobie punkty oddalone od siebie o 10 i wystarczy

dlatego potrzebuję czegoś takiego, aby mieć jakąś dodatkową kolumnę z różnicą między bieżącym wierszem, a poprzednim i potem HAVING wybrać te które abs(różnica)>=10 - ot i wszystko w tym temacie

ale zupełnie brak mi pomysłu

0

Zajrzyj tu http://4programmers.net/Forum/viewtopic.php?id=143966. Jest tam opisane wyswietlanie różnic między kolejnymi wierszami.
Napisałeś

bo to jest nieistotne
, to jednak jest bardzo istotne, jeśli z opisu i z przykładu wynika coś innego, to nie wiadomo co chcesz osiągnąć.

0
bogdans napisał(a)

Zajrzyj tu http://4programmers.net/Forum/viewtopic.php?id=143966. Jest tam opisane wyswietlanie różnic między kolejnymi wierszami.
Napisałeś

bo to jest nieistotne
, to jednak jest bardzo istotne, jeśli z opisu i z przykładu wynika coś innego, to nie wiadomo co chcesz osiągnąć.

Dzięki za odpowiedź, coś tam będę próbował uskutecznić, ale albo mi się coś wbiło do głowy niepotrzebnie, albo czegoś nie wiem nie rozumiem

aby cos takiego zrobić muszę złączyć tabelę ze sobą samą i to najlepiej (chyba) przesuniętą o 1 w górę

czyli mam początek
ID_PRÓBKI|DATA_GODZINA|STAN|

TABELI A
10|2009-06-10 1011|11
10|2009-06-10 1021|12
TABELI B
10|2009-06-10 1021|12
10|2009-06-10 1031|22

dzięki temu mogę zrobic coś takiego b.STAN-a.STAN jako, że chodzi o odległość to niech będzie wartość bezwzględna z tego

WYNIK
ID_PRÓBKI|DATA_GODZINA|STAN|b.STAN-a.STAN |
10|2009-06-10 1011|11|1
10|2009-06-10 1021|12|10

ale to kurde też nie rozwiązuje problemu, przykładowo rozpoczynam poszukiwania od godziny 1000
pierwsza dana pochodzi z 1011 i ONA JAKO POCZĄTEK MUSI BYC
i od tego punktu początkowego kolejna dana oddalona o min 10 i potem od następnego punktu o mon 10 i tak aż do końca

dla przykładowych danych

10|2009-06-10 1011|11
10|2009-06-10 1021|12
10|2009-06-10 1031|22
10|2009-06-10 1001|24
10|2009-06-10 1011|54

chcę mieć taki rezultat

10|2009-06-10 1011|11
10|2009-06-10 1031|22
10|2009-06-10 1011|54

1 użytkowników online, w tym zalogowanych: 0, gości: 1