PHP

Laravel 年月での集計処理 クエリビルダサンプル

Laravel

SQL

 

 

          SELECT
              DATE_FORMAT(request_date, "%Y-%m") AS request_month,
              COUNT(*) AS request_count,
              SUM(requests) AS request_sum
          FROM member_requests
          WHERE member_id = 100 // 任意
          AND DATE_FORMAT(request_date, "%Y") = 2021 // 任意
          GROUP BY request_month

 

クエリビルダに変換

    /**
     * 会員のリクエスト集計
     *
     * @param int $member_id
     * @param string $year
     */
    public function getSummary(int $member_id, string $year)
    {
        $query = $this->resource->query();

        return $query->select([
            \DB::raw('DATE_FORMAT(request_date, "%Y-%m") AS request_month'),
            \DB::raw("COUNT(*) AS request_count"),
            \DB::raw("SUM(requests) AS request_sum"),
        ])
        ->where('member_id', $member_id)
        ->where('request_date', 'LIKE', $year . '%')
        ->groupBy('request_month') // SELECTでフォーマットしたカラムで検索できる
        ->get();
    }

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)