2016-06-20 27 views
0

Ich habe zwei Tabellen:Gruppierung auf einer verknüpften Tabelle Eloquent/Laravel

checks 
id time (DateTime) 

views 
id check_id amount 

Im Moment habe ich diese Abfrage haben für letzten 24 Stunden, um alle Daten abzurufen:

$dot_checks = View::whereHas('check', function($q) { 
           $q->where('time', '>', DB::raw('NOW() - INTERVAL 24 HOUR')); 
           $q->orderBy('time'); 
          })->get(); 

Ich habe überprüft jede Minute, aber für Display-Zwecke muss ich sie um 10 Minuten gruppieren, indem ich den Durchschnitt der Menge nehme.

Ich kämpfe um diese Gruppierung, wo der Schlüssel ("Zeit") auf der verwandten Tabelle ist. Könnte mir jemand den richtigen Weg zeigen, es zu tun?

Vielen Dank für Ihre Zeit.

Antwort

0

So können Sie nach Sekunden gruppieren (600 = 10 Minuten).

$q->select(DB::raw('FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(time)/600) * 600) AS t, COUNT(*)')) 
$q->where('time', '>', DB::raw('NOW() - INTERVAL 24 HOUR')); 
$q->orderBy('time') 
$q->groupBy('t'); 
Verwandte Themen