Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Select rekordów gdy zmienia się wartości w kolumnie

Napisany przez: Marek320 6.04.2018, 08:59:54

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

Napisany przez: aras785 6.04.2018, 10:18:50

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
;

Napisany przez: Marek320 6.04.2018, 10:37:23

Dziękuję za odpowiedź.

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


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)