Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguirei la matematica all'interno di una query sql per calcolare la differenza percentuale?

Se il numero di risposte non è noto in anticipo, sarebbe più semplice dividere la tabella delle domande in 2:una per le domande (question_id, question_text) e una per le scelte (question_id, choice_id, choice_text). La tabella delle risposte potrebbe essere inserita (question_id, answer_id, choice_id). Quindi selezionarlo utilizzerà qualcosa come il seguente (QID =l'ID della domanda che stai selezionando):

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;

Tutto ciò che fa è contare il numero totale di risposte nella query interna, quindi per ogni scelta, dividere il numero di risposte con quella scelta sul totale.