Cześć,
Tworzę sobie hobbistycznie pewien projekcik. Od jakiegoś czasu odwlekałem to z czym dzisiaj do was przychodzę i robiłem inne rzeczy. Ale nadszedł czas, że potrzebuję i przy tym zacząć dłubać.

Sprawa wygląda tak:
Mam 400 userów, których aktualizuję co 5 minut. Stworzyłem sobie cykliczne zadanie w Laravelu, które co minutę aktualizuje 1/5 userów. Następnie w tabeli statistics tworzę nowy rekord dla konkretnego usera i zapisuje szczegóły aktualizacji.

Tak więc np.
Każdy user będzie miał swoje rekordy co 5 minut:

**USER 1:**
(...), created_at = 15.11.2020 15:00:01
(...), created_at = 15.11.2020 15:05:03
(...), created_at = 15.11.2020 15:10:02
(...), created_at = 15.11.2020 15:15:08

**USER 240:**
(...), created_at = 15.11.2020 15:01:01
(...), created_at = 15.11.2020 15:06:02
(...), created_at = 15.11.2020 15:11:07
(...), created_at = 15.11.2020 15:16:04

**USER 400:**
(...), created_at = 15.11.2020 15:04:03
(...), created_at = 15.11.2020 15:09:02
(...), created_at = 15.11.2020 15:14:05
(...), created_at = 15.11.2020 15:19:02

I tabela wygląda mniej więcej w taki sposób.

Teraz chcę zrobić na stronie wykresy i wybrać interesujące mnie dane.

Potrzebuję:

  1. Wybrać dane jednego usera co godzinę (np. pierwszy rekord o danej godzinie). I muszą to być wszystkie rekordy, nie tylko z ostatnich 24h
  2. Wybrać dane jednego usera co ustalony czas. Np. co 30 minut

i teraz chyba jeszcze najtrudniejsze:
3) Wybrać dane 2-3 userów, którzy mają różne godziny aktualizacji i wyświetlić to na jednym wykresie.

Czyli, że np.: Userzy mają godziny 15:01:03, 15:02:06, 15:04:01 i muszę to jakoś wyświetlić na wykresie z jedną godziną. I jak się za to wziąć? Podciągnąć to pod pełną godzinę 15:00:00 dla wszystkich serwerów?

Kompletnie nie wiem nawet jak te dane wybrać z bazy, a 3 punkt to już mnie w ogóle przeraża.