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

Hvordan ville jeg udføre matematik i en sql-forespørgsel for at beregne procentforskellen?

Hvis antallet af svar ikke kendes på forhånd, ville det være nemmere at opdele spørgsmålstabellen i 2 - én for spørgsmålene (spørgsmåls-id, spørgsmålstekst) og én for valg (spørgsmåls-id, valg_id, valgtekst). Svartabellen kunne laves om til (spørgsmåls-id, svar-id, valg-id). At vælge det ville være at bruge noget i stil med følgende (QID =ID'et for det spørgsmål, du vælger):

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;

Alt dette gør er at tælle det samlede antal svar i den indre forespørgsel, og derefter dividere antallet af svar med det pågældende valg over det samlede antal for hvert valg.



  1. Hvordan kan jeg se, hvornår en MySQL-tabel sidst blev opdateret?

  2. SQL opdaterer rækker uden at kende kolonnenavnet

  3. CakePHP 2.3.1 updateAll forespørgsel virker ikke

  4. Laravel-opdateringEllerOpret med automatisk inkrementel database