ItSolutionStuff.com

How to Group By with Order By Desc in Laravel?

By Hardik Savani • April 16, 2024
Laravel

This post is focused on laravel group by with order by desc. if you want to see example of laravel eloquent group by order by desc then you are a right place. you can understand a concept of laravel group by orderby. i would like to show you laravel eloquent group by and order by. it will also usable with laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11 app.

In this post, i will give you some solution for how to get records with order by desc with group by in laravel application. when you use laravel eloquent group by with order by desc then it's now working as we want. we need to get last added records first with group by.

Here, i will give you some solution with how you to order by before group by in laravel eloquent.

So let's see bellow solution:

Solution 1:

/**

* Show the application dashboard.

*

* @return \Illuminate\Http\Response

*/

public function index()

{

$messages = Message::select("*")

->where('receiver_id',$id)

->orderBy('created_at', 'desc')

->get()

->unique('sender_id');

dd($messages);

}

Solution 2:

/**

* Show the application dashboard.

*

* @return \Illuminate\Http\Response

*/

public function index()

{

$message = Message::orderBy('created_at','DESC');

$messages = DB::table(DB::raw("({$message->toSql()}) as sub"))

->where('receiver_id',$id)

->groupBy('sender_id')

->get();

dd($messages);

}

Solution 3:

/**

* Show the application dashboard.

*

* @return \Illuminate\Http\Response

*/

public function index()

{

$messages = Message::select(DB::raw('*, max(created_at) as created_at'))

->where('receiver_id',$id)

->orderBy('created_at', 'desc')

->groupBy('sender_id')

->get();

dd($messages);

}

Solution 4:

/**

* Show the application dashboard.

*

* @return \Illuminate\Http\Response

*/

public function index()

{

$messages = Message::select("*")

->where('receiver_id',$id)

->orderBy('created_at', 'desc')

->groupBy('sender_id')

->get();

dd($messages);

}

I hope it can help you...

Hardik Savani

Hardik Savani

I'm a full-stack developer, entrepreneur, and founder of ItSolutionStuff.com. Passionate about PHP, Laravel, JavaScript, and helping developers grow.

📺 Subscribe on YouTube

We Are Recommending You

Laravel Eloquent orWhere() Condition Example

Read Now →

Laravel Eloquent WhereIn Query Example

Read Now →

How to Create and Use Query Scope in Laravel Eloquent

Read Now →

How to use whereHas with orWhereHas in Laravel?

Read Now →

How to use Union Query with Laravel Eloquent?

Read Now →

Laravel Has Many Through Eloquent Relationship Tutorial

Read Now →

Laravel Where Clause with date_format() Example

Read Now →

Laravel Group By with Month and Year Example

Read Now →

Laravel Eloquent Group By with Multiple Columns Example

Read Now →

Laravel Select with Count Query with Group By Example

Read Now →

Laravel Eloquent Where Like Query Example Tutorial

Read Now →

GROUP_CONCAT with different SEPARATOR in Laravel Example

Read Now →