2017-05-16 4 views
-3

Ich bin auf der Suche nach einer SQL-Anfrage, die diese Art von Ergebnis liefern wird.Bitte geben Sie die Anzahl der einzelnen Familie

id | family  result : 
1  A   [A => 2, B => 1, C => 1] 
2  A 
3  B 
4  C 

Vorzugsweise mit eloquent.

Aktuelle Lösung:

materials()->select('family', DB::raw('count(*) as total')) 
      ->groupBy('family') 
      ->pluck('total', 'family'); 
+1

Haben Sie etwas schon versucht? Dies ist keine Code-on-Demand-Site ... –

+1

Eine einfache groupby- und count-Abfrage liefert Ihnen dies. – Sandeesh

+0

Die Anfrage, die ich versuche, funktioniert überhaupt nicht, also möchte ich Leute nicht in eine falsche Richtung führen – Pixeuh

Antwort

2

Sie so etwas wie versuchen:

$plop = Plop::selectRaw('family, COUNT(id) AS total')->groupBy('family')->pluck('total', 'family'); 

Wie Sie genügend Details nicht gegeben hat, ist es schwer, genau zu sein.

+0

Danke für die Zupffunktion, ich werde auf diese Weise aussehen – Pixeuh

+0

@ThomasPetillot Dies tut genau, warum Sie brauchen – Sandeesh

0

Mit Laravel eloquent, mit groupBy() und count():

$model=Model::get()->groupBy('family'); 
foreach($model as $key => $mod) 
{ 
     echo $key; 
     echo (count($mod)); 
} 
Verwandte Themen