Direkt zum Hauptinhalt springen
eLearner.app
Modul 15 · Lektion 2 von 257/57 im Kurs~15 min
Lektionen des Moduls (2/2)

JSON-Aggregationsfunktionen

JSON-Aggregationsfunktionen

Die Integration erfolgt bidirektional. Die Datenbank muss sich nicht auf das Parsen von JSON beschränken: Sie kann es erstellen. Stellen Sie sich vor, Ihre API und Node.js müssten nicht die schmutzige, intensive Arbeit der Serialisierung verschachtelter Objekte in JSON erledigen, da die DB sie bereits erstellt direkt von der Festplatte liefert.

Objekte und Arrays erstellen

Anstelle der klassischen Massenaggregation oder String-Verkettung (String_agg) greifen wir auf diese Funktionen zurück:

  • json_build_object(key, value, ...) oder jsonb_build_object(...)
  • json_agg(...) oder jsonb_agg(...)
SQL
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;

Es werden Zeilen gedruckt, die { "name": "...", "city": "..." } enthalten und vollkommen konform sind.

Übung#sql.m15.l2.e1
Versuche: 0Wird geladen…

Geben Sie aus der Tabelle „Kunden“ die Daten als JSON-Zeilen zurück, zugeordnet mit `json_build_object`. Ordnen Sie zwei Schlüssel zu: „Name“, gebunden an „Vorname“, und „Mail“, gebunden an „E-Mail“. Verwenden Sie `AS customer_doc` für die Spalte.

Editor wird geladen…
Hinweis anzeigen

json_build_object('name', first_name, 'mail', email)

Lösung nach 3 Versuchen verfügbar

Übung#sql.m15.l2.e2
Versuche: 0Wird geladen…

Erstellen Sie für jede Bestellung (`order_id`) alle darin enthaltenen `product_id`s in einer einzigen Einheit. Führen Sie in der Tabelle „order_items“ `GROUP BY order_id` aus. Wählen Sie dann `order_id` aus und sammeln Sie nur die `product_id`-Daten in einem JSON-Array (JSON_AGG). Benennen Sie das Array `products`.

Editor wird geladen…
Hinweis anzeigen

JSON_AGG(product_id) plus eine klassische Gruppierung nach, um die Daten zu sammeln.

Lösung nach 3 Versuchen verfügbar