← Daten & Codebook

Filtervariablen dynamisch mit Unterabfragen (Sub-queries/ Sub-Selects) erstellen

[data-colorid=quggzex7cl]{color:#0747a6} html[data-color-mode=dark] [data-colorid=quggzex7cl]{color:#5999f8}[data-colorid=udzm3eryir]{color:#36b37e} html[data-color-mode=dark] [data-colorid=udzm3eryir]{color:#4cc994}[data-colorid=abyo08i2vb]{color:#0747a6} html[data-color-mode=dark] [data-colorid=abyo08i2vb]{color:#5999f8}[data-colorid=rvktutq4j6]{color:#36b37e} html[data-color-mode=dark] [data-colorid=rvktutq4j6]{color:#4cc994}Mit Hilfe von SQL-Abfragen lassen sich auch Unterabfragen bzw. Sub-Queries oder auch Sub-Selects erstellen, um berechnete Variablen zu generieren, die sich als Filter nutzen lassen.

Auf diese Weise können Filter erstellt werden, die sich bei einem Datenupload automatisch neu berechnen und nicht manuell abgeändert werden müssen. Ein häufiges Beispiel sind die meist genannten Ausprägungen einer bestimmten Variable.

Beispiel

In unserem Beispiel liegen Informationen über den Monat des Abschlusses einer Versicherung unserer Umfrageteilnehmer vor.

image-20240822-101229.png

Ziel ist es, weitere Daten dynamisch nach den Top 3 Monaten zu filtern.

Da sich die Reihenfolge der Monate, in denen die meisten Versicherungen abgeschlossen wurden, mit jedem Update der Umfragedaten ändert, ist es praktisch, diese Abfrage dynamisch zu berechnen.

Dafür legen Sie zunächst eine neue Variable im Projekt-Backend → Codebook an (alternativ können Sie diese auch im Excel-Codebook ergänzen).

image-20240822-120520.png

Dafür tragen Sie im Feld “Kategorie hinzufügen” den gewünschten Namen (im Beispiel Top Monat) ein und erstellen per Klick auf das “+” die Variable.

image-20240822-120753.png

Auf die gleiche Weise erstellen Sie nun innerhalb dieser Variable die Ausprägungen (im Beispiel Top 1 Monat).

In der Box unter “Wert” definieren Sie nun die Unterabfrage für die jeweilige Ausprägung:

image-20240822-122810.png

Um den Top 1 Monat aus den Daten zu generieren, tragen Sie die folgende Berechnung ein
(Hinweis: “monat” ist der Name der zugrunde liegenden Variable, wie diese in den Daten vorliegt):

{{ monat = (SELECT monat FROM (SELECT monat, COUNT(*) as cnt FROM dashboard_data_table_317 GROUP BY monat ORDER BY cnt DESC LIMIT 1) as Tabelle) }}

Durch das SELECT-Attribut erstellen Sie eine Untereinheit der Datentabelle (den Namen der Datentabelle finden Sie im Backend unter Datenquellen → dort finden Sie die Nummer am Ende Ihrer Hauptdatenquelle).

Innerhalb des SELECT-Attributs werden die Ausprägungen der Monatsspalte gruppiert (GROUP BY), gezählt (COUNT), in eine Rangordnung gebracht (ORDER BY) und die Ausgabe auf den 1. Wert (LIMIT 1) beschränkt.

Um den zweithäufigsten Monat zu wählen, müssen Sie hier lediglich den Top 1 Monat mit Hilfe eines OFFSET-Attributs in der Rangfolge überspringen.

Top 2 Monat:

{{ monat = (SELECT monat FROM (SELECT monat, COUNT(*) as cnt FROM dashboard_data_table_317 GROUP BY monat ORDER BY cnt DESC LIMIT 1 OFFSET 1) as Tabelle) }}

Für den Top 3 Monat wäre der Offset Wert = 2, etc.

Die neu generierte Variable kann nun wie gewohnt als Filter (statisch oder über einen Dashboard-Filter) verwendet werden.

image-20240822-124454.png

In unserem Beispiel können wir nun bspw. per Dropdown auf den Top 1 Monat filtern, um die Versicherungsarten nur innerhalb dieses Monats zu vergleichen.

image-20240822-124650.png