Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie würde ich Mathematik in einer SQL-Abfrage durchführen, um den prozentualen Unterschied zu berechnen?

Wenn die Anzahl der Antworten nicht im Voraus bekannt ist, wäre es einfacher, die Fragentabelle in zwei Teile aufzuteilen – eine für die Fragen (question_id, question_text) und eine für Auswahlmöglichkeiten (question_id, choice_id, choice_text). Die Antworttabelle könnte in (question_id, answer_id, choice_id) umgewandelt werden. Dann würde die Auswahl so etwas wie das Folgende verwenden (QID =die ID der Frage, die Sie auswählen):

SELECT choice,
       (COUNT(*) / (SELECT COUNT(*)
                    FROM answers
                    WHERE answers.question_id = QID)) * 100 AS percentage
FROM choices
     INNER JOIN answers
       ON choices.choice_id = answers.choice_id
       AND choices.question_id AND choices.question_id
WHERE choices.question_id = QID
GROUP BY choice_id;

Dabei wird lediglich die Gesamtzahl der Antworten in der inneren Abfrage gezählt und dann für jede Auswahl die Anzahl der Antworten mit dieser Auswahl durch die Gesamtzahl geteilt.