ich eine Online-Umfrage für meine Nutzer haben, und jedes Mal, Benutzer beantwortet eine Umfrage, ich ihre Details in einer „survey_stats“ Tabelle wie folgt erfassen würde -MySQL - Gruppe durch mehrere Zeilen
| id | user_id | survey_id | key | value |
|---------|---------|-----------|--------------|---------|
| 1 | 10 | 99 | gender | male |
| 2 | 10 | 99 | age | 32 |
| 3 | 10 | 99 | relationship | married |
| 4 | 11 | 99 | gender | female |
| 5 | 11 | 99 | age | 27 |
| 6 | 11 | 99 | relationship | single |
Mit anderen Worten: Wenn ein Benutzer eine Umfrage beantwortet, würde ich die Attribute des Benutzers (Geschlecht, Alter, Beziehung) in drei Zeilen erfassen (jede Zeile für jedes einzelne Attribut über den Benutzer). Der Grund, warum wir diesen Weg beibehalten, ist, wenn wir die Benutzerattribute in Zukunft erweitern wollen, können wir einfach mehr Datensätze pro Umfrage hinzufügen, anstatt die Tabellenstruktur von survey_stats zu ändern.
würde Ich mag eine SQL konstruieren Bericht wie folgt zu generieren:
| age_group | male | female |
|-----------|-------|---------|
| 13 - 17 | 10 | 7 |
| 18 - 24 | 25 | 10 |
| 25 - 34 | 30 | 11 |
Würde schätzen wirklich etwas Hilfe, mir zu zeigen, wie eine einzelne SQL-Anweisung zu schreiben, dies zu tun.
FYI - Ich benutze MySQL. Das genannte Projekt ist eine Ruby on Rails App.
Vielen Dank.
Vielen Dank, @DRapp! – keewooi