2017-07-26 3 views
3

Ich arbeite derzeit auf Feedback-System, wo der Benutzer Feedback geben kann, in meinem Fall muss ich Prozentsatz für jede Option zählen, wie die Frage hat viele Optionen Ich sollte den Prozentsatz für jede Option zeigen Zum Beispiel, wie viele Leute die Option a, b, c, d usw. gewählt haben.wie prozentual in laravel zu zählen

Meine Antworten Tabelle

 user_id   question_id  option(selected by user) 
    1      1        2 
    2      1        1 
    3      1        4 
    4      1        3 

Nun, was ich erreichen will ist

question1 
    option1(25% people selected option1) 
    option2(25% people selected option2) 
    option3(25% people selected option3) 
    option4(25% people selected option4) 

Was die Abfrage für oben ausgegeben werden soll, kann jemand helfen, auf das bitte.

Antwort

1

versuchen diese,

Sie werden mit question_id = 1

DB::table('answers')->where('question_id',1) 
    ->select('option',DB::raw('count(*) *100/(select count(*) from answers) as count')) 
    ->groupBy('option') 
    ->get(); 
+0

für Frage Prozentsatz jeder Option erhalten sie sagt, Syntaxfehler, unerwartete ')' in der zweiten Zeile. –

+0

@ManjunathAM Ich habe aktualisiert versuchen aktualisiert, gibt es Syntaxfehler vor wegen Tippfehler –

+0

Nein @Sagar Gautam In der aktualisierten Antwort gibt es auch einen Fehler, es sagt SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben ein Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax für die Option 'next' zu verwenden * 100/(wählen Sie COUNT (*) aus Antworten) als Anzahl von 'Antworten' wobei' qu 'in Zeile 1 (SQL: select ' Option ', COUNT (Option) * 100/(wählen COUNT (*) aus Antworten) als Anzahl von' Antworten 'wo' Frage_ID' = 1 Gruppe von 'Option') –

Verwandte Themen