Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Select rekordów gdy zmienia się wartości w kolumnie
Forum PHP.pl > Forum > Bazy danych > MySQL
Marek320
Witam.

Nie mogę wpaść na to jak wyfiltrować rekordy w momencie zmiany wartości w danej kolumnie.

W bazie mam 5 kolumn z wartościami integer i jedną datetime jak poniżej:

240 238 247 238 241 2018-03-28 14:50:36
240 238 247 238 242 2018-03-28 14:50:37
242 238 247 237 241 2018-03-28 14:50:57
242 238 247 237 242 2018-03-28 14:51:37
243 238 247 236 242 2018-03-28 14:52:57
240 238 248 236 242 2018-03-28 14:53:37

Jest to zrzut z przyrządu.

I teraz chciałbym wyłapać tylko te momenty w których nastąpiła zmiana wartości np. w kolumnie 1, żeby otrzymać:

240 2018-03-28 14:50:36
242 2018-03-28 14:50:57
243 2018-03-28 14:52:57
240 2018-03-28 14:53:37

Czy jest sposób żeby to jakoś ugryźć w zapytaniu MySQL?

Próbuję czegoś takiego:

Kod
SELECT Poprzedni.*
FROM Pomiary Poprzedni
LEFT OUTER JOIN Pomiary Nastepny
ON Poprzedni.ID_pomiary = Nastepny.ID_pomiary+1
WHERE Poprzedni.KOL01 <> Nastepny.KOL01


Ale w ten sposób nie wyświetla pierwszego rekordu
aras785
Cześć,

może tak:

http://www.sqlfiddle.com/#!9/a9baf9/1
  1. SELECT
  2. test.nr1,
  3. test.DATA,
  4. (SELECT test2.nr1 FROM test AS test2 WHERE test2.data<test.DATA ORDER BY test2.DATA DESC LIMIT 1) AS test2_nr1
  5. FROM test
  6. HAVING test.nr1!=test2_nr1 OR test2_nr1 IS NULL
  7. ORDER BY DATA ASC
;
Marek320
Dziękuję za odpowiedź.

Rozwiązanie które zaproponowałeś działa bardzo dobrze.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.