Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel Eloquent nhận kết quả được nhóm theo ngày

Tôi tin rằng mình đã tìm ra giải pháp cho vấn đề này, chìa khóa là hàm DATE () trong mysql, hàm này chuyển đổi DateTime thành Date:

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

Tuy nhiên, đây không thực sự là một giải pháp Laravel Eloquent, vì đây là một truy vấn thô. Sau đây là những gì tôi nghĩ ra trong cú pháp Eloquent-ish. Mệnh đề where đầu tiên sử dụng ngày carbon để so sánh.

$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. MySql và vấn đề chèn ID cuối cùng vẫn còn

  2. Khóa chính tăng dần MySQL Auto tăng 10

  3. Lỗi khởi động lại hộp mực MySQL Openshift

  4. Cú pháp cho các tham số đầu vào trong một truy vấn MySQL

  5. Cách Chèn Nhiều Dòng trong Một Truy vấn SQL - Câu hỏi Phỏng vấn Tuần # 069