sql >> Databasteknik >  >> RDS >> Mysql

Hur skulle jag utföra matematik i en sql-fråga för att beräkna procentuell skillnad?

Om antalet svar inte är känt i förväg skulle det vara enklare att dela upp frågetabellen i 2 - en för frågorna (fråga_id, frågetext) och en för val (fråga_id, val_id, val_text). Svarstabellen skulle kunna göras till (fråga_id, svar_id, val_id). Att sedan välja det skulle vara att använda något i stil med följande (QID =ID för frågan du väljer):

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;

Allt detta gör är att räkna det totala antalet svar i den inre frågan, och sedan för varje val dela antalet svar med det valet över det totala antalet.



  1. Få antalet objekt och deras värden i en kolumn

  2. Hur man löser MySQL max_user_connections-felet

  3. Ändra sidrubrik baserat på objekt i Oracle APEX 4.0

  4. Infoga SQL Server-data i Salesforce.com