Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel Eloquent uzyskuje wyniki pogrupowane według dni

Uważam, że znalazłem rozwiązanie tego problemu, kluczem jest funkcja DATE() w mysql, która konwertuje DateTime na tylko Date:

DB::table('page_views')
      ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views'))
      ->groupBy('date')
      ->get();

Jednak tak naprawdę nie jest to rozwiązanie Laravel Eloquent, ponieważ jest to surowe zapytanie. Oto, co wymyśliłem w składni Eloquent-ish. Pierwsza klauzula gdzie używa dat węgla do porównania.

$visitorTraffic = PageView::where('created_at', '>=', \Carbon\Carbon::now->subMonth())
                            ->groupBy('date')
                            ->orderBy('date', 'DESC')
                            ->get(array(
                                DB::raw('Date(created_at) as date'),
                                DB::raw('COUNT(*) as "views"')
                            ));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:nie znaleziono odpowiedniego sterownika do testu localhost

  2. Samouczek dotyczący tworzenia kopii zapasowych i przywracania (eksportowania i importowania) baz danych MySQL

  3. Jak mogę debugować, dlaczego najprostsze zapytanie MySQL zwraca false?

  4. Przygotowane instrukcje PHP... Powiązać zmienną jako zakres liczbowy w REGEXP?

  5. Konwertuj binarny na dziesiętny za pomocą MySQL