sql >> Database >  >> RDS >> Mysql

Laravel Eloquent krijgt resultaten gegroepeerd op dagen

Ik geloof dat ik hier een oplossing voor heb gevonden, de sleutel is de DATE()-functie in mysql, die een DateTime omzet in alleen Date:

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

Dit is echter niet echt een Laravel Eloquent-oplossing, omdat dit een onbewerkte vraag is. Het volgende is wat ik bedacht in Eloquent-achtige syntaxis. De eerste waar-clausule gebruikt koolstofdatums om te vergelijken.

$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. Hoe maak je een gepartitioneerde PostgreSQL-reeks?

  2. MySQL-syntaxisfout in WHILE-instructie

  3. Ontvang bijgewerkte MySQL-tabelitems in python zonder de verbinding te sluiten

  4. Recursieve query in SQL Server