I had got the result from the query.
My Simple SQL is:
SELECT
o2.driver_id,
total_delieveries,
DATE_FORMAT(o1.created_at ,'%Y-%m-%d') AS created_at
FROM
(
SELECT
driver_id,
created_at,
COUNT(driver_id) AS total_delieveries
FROM
orders
WHERE
is_paid = 0
AND order_status = 5
AND created_at BETWEEN "'.$first_Day.'"
AND "'.$last_Day.'"
GROUP BY DATE_FORMAT(created_at ,'%Y-%m-%d'),driver_id
)
o1 INNER JOIN orders o2 ON o1.driver_id = o2.driver_id GROUP BY o1.created_at
In Laravel source, I wrote the query:
$responseData = DB::select(DB::raw('select t.driver_id,total_delieveries,DATE_FORMAT(q1.created_at,\'%Y-%m-%d\') as created_at from ( SELECT driver_id, created_at, COUNT( driver_id ) AS total_delieveries FROM orders WHERE is_paid=0 AND order_status = 5 AND created_at BETWEEN "'.$first_Day.'" AND "'.$last_Day.'" GROUP BY DATE_FORMAT(created_at,\'%Y-%m-%d\'),driver_id) q1 INNER JOIN orders t ON q1.driver_id = t.driver_id GROUP BY q1.created_at'));
I got the result what I wanted but I want to write it in a better way.
Please tell me the correct and proper method to write this query.
Also show this answer and for your variant: