MeteOguzhan adlı üyeden alıntı: mesajı görüntüle
bu kadar laravel bilgim ile bunu beceremeyeceğim anlasılan
Basit bir kod atacagim, tablo ismi users, ad soyad kolon isimleri => first_name, last_name oldugunu varsayin, siz tablo adinizi ve alanlari kendi tablonuza gore duzenleyin, yorum satirlarinda belirtecegim zaten.

takildiginiz bir sey olursa cekinmeden sorabilirsiniz.

$users = AppUser::all(); // tum userlari aldik

// userlari atayacigimiz dizi, eslestirme yaparken her seferinde sorgu atmayalim, bu diziden cekelim.
$userMap = [];

// en fazla referansa sahip olan userlari bu dizide toplayacagiz, dizide 3 alan olacak. 1 => first_name, 2 => last_name, 3 => references_count (totalde referans sayisi)
$highestReferences = [];

// sistemdeki userlari donup, $userMap tablomuza ekliyoruz
foreach($users as &$u) {    
    $userMap[$u->id] = $u;
}


/* kullanici tablosundan en cok referansa sahip kayitlari sorgular, donen sonuctaki under_reference degeri ilede referans sahibi kullaniciyi bulacagiz.
* HAVING under_reference IS NOT NULL sorgusu referanssiz kayit olanlari dahil etmemek icin, eger siz null yerine 0 ile dolduruyorsanız referanssiz kayit olanlari sorguyu soyle degistirin (asagida)
* HAVING under_reference > 0
**/
$results  = DB::select('SELECT *, COUNT(*) as total FROM users GROUP BY under_reference HAVING under_reference IS NOT NULL order by total DESC LIMIT 5');

// yukardaki sorgudan donen kayitlari donelim ve referansa sahip user ile eslestirelim.
foreach($results  as  $result) {    
    $user = isset($userMap[$result->under_reference]) ? $userMap[$result->under_reference] : false;
  
  // eger referans sahibi user , kayitlarimizda yoksa es gecelim.  
   if (!$user) continue;  


 /* referansın sahibini asagidaki diziye ekleyelim    
  * (first_name, last_name alanlari users tablosundan gelecek [sizde farkliysa kendinize gore duzenleyin kodu], $result->total ise yukardaki sorguda count unu aldigimiz referans toplami olacak)  
 **/    
$highestReferences[] = [      
     'first_name' => $user->first_name,
     'last_name' => $user->last_name,    
     'references_count' => $result->total    
   ];

}


// burda ise olusturdugumuz veriyi dumpluyoruz, dogru sonucu gormus olmamiz gerek. 
// siz listelemek icin asagidaki diziyi viewa gonderip, foreach icinde listeletebilirsiniz.
dd($highestReferences);