sql >> データベース >  >> RDS >> Mysql

LaravelEloquentは日ごとにグループ化された結果を取得します

    私はこれに対する解決策を見つけたと思います。重要なのはmysqlのDATE()関数であり、これはDateTimeをちょうどDateに変換します:

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

    ただし、これは生のクエリであるため、実際にはLaravel Eloquentソリューションではありません。以下は、Eloquent風の構文で思いついたものです。最初のwhere句では、炭素の日付を使用して比較します。

    $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. Accessで通常のクエリをクロス集計クエリに変換する方法

    2. PHPフォームのチェックボックスと未定義のインデックス

    3. 前のレコードの値が小さい場合は、レコードを選択します

    4. Oracle PL / SQL-単純な配列変数を作成する方法は?