Pomoc z zapytaniem

0

Witam,

Proszę o pomoc w jaki sposób mogę wyciągnąć:

  1. Pierwszy i ostatni ts z każdego dnia wtedy, gdy eventid = 11.
  2. Maksymalną wartość z pola vehiclespeed dla każego dnia.

W tym miejscu preview:
http://sqlfiddle.com/#!17/f1fa4/6

Jak robię:

SELECT
deviceid,
ts::DATE,
MIN(ts) AS rozpoczeciePracy,
MAX(ts) AS zakonczeniePracy,
MAX(vehiclespeed) AS predkoscMaksymalna
FROM device_data
WHERE eventid=11
GROUP BY deviceid, ts::DATE

Wtedy nie zgadza mi się MAX vehiclespeed bo jest wyciągany tylko z MIN i MAX ts.

Proszę o pomoc.

1

troche zmodyfikowalem dane wejsciowe:
http://sqlfiddle.com/#!17/32c9b/1

0

Dziękuję za pomoc, jestem już trochę bliżej rozwiązania. Lecz mam jeszcze jeden dylemat, który przedstawiłem tutaj:
http://sqlfiddle.com/#!17/e631e/1

Zmieniłem nieco dane i dodałem kolumnę drivername w której jest informacja o tym jaki kierowca porusza się pojazdem. Jak pojazd stoi to wiadomo, że pole jest puste i teraz mam problem ponieważ zamiast dwóch wierszy zwraca mi cztery z pustym kierowcą. Nie chcę żeby zwracało mi rekordy bez kierowcy jeżeli tego dnia jest już rekord z imieniem kierowcy. PRoszę o pomoc.

0

Potrzebuję zrobić tak, że jeżeli w danym dniu był jakiś kierowca to wtedy pomijam te puste wpisy. Natomiast jeżeli są same puste wpisy to nie pomijam ich. Dobrze wyjaśniłem? :)

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