Factophant
Umfrage-Apps

Die Daten hinter einer Umfrage

Die Antworten einer Umfrage sind gewöhnliche Daten in Ihrem Workspace. Factophant hält sie in einer kleinen Gruppe von Tabellen, die es für Sie anlegt und pflegt, und genau diese Tabellen liest die Seite Ergebnisse, schreibt der CSV-Export und importiert eine Analyse-App.

Die Seite Pipeline

Die Seite Pipeline im Editor zeigt diese Tabellen als Pipeline, nur lesbar. Jeder Knoten darauf wird von Factophant erzeugt und mit Ihrem Formular abgeglichen: Es gibt nichts hinzuzufügen, zu bearbeiten oder auszuführen. Eine neue Umfrage hat ihre ganze Pipeline von Anfang an, leer bis zur ersten Antwort.

Zwei Arten von Knoten liegen darauf:

  • Umfragedaten - die drei Tabellen, in die Antworten geschrieben werden. Öffnen Sie eine, um ihre Spalten und deren Typen im Tab Konfiguration und die Zeilen im Tab Daten zu sehen.
  • Umfrageansicht - Auswertungen über diese Tabellen, live berechnet, wann immer sie gelesen werden. Öffnen Sie eine, um die Anweisung dahinter zu sehen; die Zeilen stehen im Tab Daten. Ihr Ausführen ist nicht verfügbar, weil eine Ansicht nie ausgeführt werden muss.

Die Knoten tragen englische Namen, in jeder Sprache dieselben.

Die drei gespeicherten Tabellen

KnotenEine Zeile proWas sie enthält
QuestionsSeite, Frage, Option und Tabellenspalte, für jede veröffentlichte Version, die jemand beantwortet hatDas Formular als Daten: node_id, kind (section, question, option oder field), parent_id, label, question_type, is_required, is_archived, die Bedingung und structure_version_id.
Answerseinzelne Angaberesponse_id, question_id und die Angabe in genau einer der Spalten option_id, value_text, value_number, value_boolean oder value_date, mit structure_version_id.
SubmissionsAntwortresponse_id, submitted_at (UTC), structure_version_id und deleted_at, gesetzt, wenn die Antwort gelöscht wurde.

Ein paar Dinge über Answers sollten Sie kennen, bevor Sie sie abfragen:

  • question_id ist der Spaltenname der Frage, angezeigt in ihrer Gruppe Antwort-Datensatz.
  • Eine Mehrfachauswahl ist eine Zeile je gewählter Option, sodass das Zählen einer Option ein einfaches Gruppieren ist.
  • Eine Antwort Sonstiges ist eine Zeile mit der Options-ID __other__ und dem eingegebenen Text in value_text.
  • Eine Tabellenantwort ist eine Zeile je ausgefüllter Zelle: repeat_index ist die Zeile (ab 0) und field_id die Spalte.
  • Eine Dateiantwort ist eine Zeile, deren value_text die Datei beschreibt, einschließlich ihres name.
  • Eine Frage, die jemandem nie angezeigt wurde, und eine leer gelassene freiwillige Frage hinterlassen beide keine Zeile.

Questions wird geschrieben, wenn eine veröffentlichte Version ihre erste Antwort erhält, nicht beim Veröffentlichen - so lässt sich jede Antwort immer auf den genauen Wortlaut zurückführen, den die Person gesehen hat.

Die sechs Ansichten

KnotenWas er zeigt
Current formJede Frage in ihrer neuesten beantworteten Version.
Question changesFür jede Frage und beantwortete Version, was sich geändert hat und welche Versionen zusammen gezählt werden dürfen.
Labelled answersJede Angabe mit Frage und Option in Ihren Worten ausgeschrieben, markiert, wo die Frage inzwischen neu definiert wurde.
Option countsWie viele Antworten jede Option gewählt haben, einschließlich der Optionen, die niemand gewählt hat.
ResponsesEine Zeile pro Antwort und eine Spalte pro Frage - was die Tabelle Einzeln und der CSV-Export lesen.
Crossed answersJede Angabe mit den eigenen Antworten der Person auf die ersten Einfachauswahl-Fragen daneben, sodass sich eine Frage nach einer anderen filtern lässt.

Die Ansichten, die Antworten lesen, lassen gelöschte Antworten weg.

Die Antworten in einer Analyse-App verwenden

Eine Umfrage-App sammelt Antworten; sie verarbeitet sie nicht. Wenn Sie die Antworten mit einem anderen Datensatz verbinden, nach Ihren eigenen Vorstellungen darstellen, die Antworten einer Gruppe Frage für Frage lesen oder in einen Bericht einspeisen möchten, holen Sie sie in eine Analyse-App - dort leben Transformationen und Läufe.

Genau das tut ein Analyse-App-Daten-Knoten:

  1. Fügen Sie im Editor der Analyse-App einen Knoten Analyse-App-Daten hinzu.
  2. Wählen Sie die Umfrage als Quell-Analyse-App. Die Liste führt jede Umfrage neben Ihren Analyse-Apps auf, gekennzeichnet mit (Umfrage); eine nie veröffentlichte Umfrage ist mit (Umfrage - noch nicht veröffentlicht) gekennzeichnet und lässt sich nicht wählen, weil es nichts zu importieren gibt.
  3. Wählen Sie den Quellknoten. Eine Umfrage bietet ihre drei gespeicherten Tabellen an, benannt nach der Umfrage: - questions, - answers und - responses, wobei die letzte die Tabelle Submissions ist. Die Ansichten lassen sich nicht importieren. Legen Sie je benötigter Tabelle einen Knoten an; die meisten Analysen nutzen alle drei.
  4. Wählen Sie optional, welche Spalten importiert werden; mit Alle Spalten kommt jede mit.

Wie jeder von Hand hinzugefügte Knoten landet der Import im Entwurf der Analyse-App. Dabei wird nichts veröffentlicht und nichts ausgeführt: Führen Sie die Pipeline aus, um die Antworten hindurchfließen zu sehen, und veröffentlichen Sie, wenn das Ergebnis stimmt.

Eine Umfrage hat keine eigenen Läufe; jeder Lauf der Analyse-App liest die Tabellen der Umfrage daher so, wie sie in diesem Moment sind, und behält diese Kopie in seinem eigenen Verlauf. Neue Antworten erreichen die Analyse-App bei ihrem nächsten Lauf.

Die importierten Tabellen lesen

Die Antworten kommen als eine Zeile pro Angabe an, was jeden Fragetyp und jede Version des Formulars in einer Form hält. Ein SQL-Knoten setzt sie wieder zusammen. Verbinden Sie answers mit questions für den Wortlaut und mit submissions für den Zeitpunkt - und behalten Sie nur die Einreichungen, deren deleted_at leer ist, damit eine in der Umfrage gelöschte Antwort aus Ihren Ergebnissen herausbleibt.

Mit Importknoten namens commute_answers, commute_questions und commute_submissions zählt diese Abfrage, wie viele Personen jede Antwort auf eine Frage gewählt haben:

commute_mode_counts.sql
SELECT q.label AS mode,
       COUNT(*) AS respondents
  FROM commute_answers a
  JOIN commute_submissions s
    ON s.response_id = a.response_id
  JOIN commute_questions q
    ON q.kind = 'option'
   AND q.parent_id = a.question_id
   AND q.node_id = a.option_id
   AND q.structure_version_id = a.structure_version_id
 WHERE a.question_id = 'how_do_you_get_to_work'
   AND s.deleted_at IS NULL
 GROUP BY q.label

Eine Antwort Sonstiges hat keine Optionszeile, daher lässt diese Abfrage sie weg; lesen Sie sie aus value_text, wo option_id gleich __other__ ist. Nichts davon müssen Sie selbst schreiben: Beschreiben Sie Vera das gewünschte Ergebnis, und Vera schreibt den SQL-Knoten. Siehe SQL-Knoten.

Es gelten die üblichen Regeln für Importe - wer welche App importieren darf und was ein Import daran ändert, wer die importierende App ändern kann. Siehe Analyse-App-Daten.

Auf dieser Seite