Passer au contenu principal
eLearner.app
Module 15 · Leçon 2 sur 257/57 dans le cours~15 min
Leçons du module (2/2)

Funzioni di Aggregazione JSON

Funzioni di Aggregazione JSON

L'integrazione è bidirezionale. Il database non deve limitarsi a parsarli: può costruirli. Immagina se la tua API e Node.js non dovessero far lo sporco ed intensivo sforzo della serializzazione JSON degli oggetti annidati, se il DB glieli sparasse già fatti su disco.

Costruire Oggetti e Array

Invece della classica aggregazione o concatenazione di stringhe in massa (String_agg), noi ricorriamo alle funzioni:

  • json_build_object(chiave, valore, ...) o jsonb_build_object(...)
  • json_agg(...) o jsonb_agg(...)
SQL
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;

Troverai stampate a video row contenenti { "name": "...", "city": "..." } perfettamente compliant.

Exercice#sql.m15.l2.e1
Tentatives : 0Chargement…

Dalla tabella 'customers', restituisci i dati sotto forma di righe Json, mappate con \`json_build_object\`. Mappa due chiavi: 'name' associata a 'first_name', e 'mail' associata a 'email'. Usa \`AS customer_doc\` per la colonna.

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Exercice#sql.m15.l2.e2
Tentatives : 0Chargement…

Per ogni ordine (\`order_id\`), crea in un unicum tutti i \`product_id\` che include. Dalla tabella 'order_items', esegui \`GROUP BY order_id\`. Dunque seleziona \`order_id\` ed accumula nel JSON array (JSON_AGG) i soli dati di \`product_id\`. Chiama l'array \`products\`.

Chargement de l'éditeur…
Afficher l'indice

JSON_AGG(product_id) e usa un group by classico per accollarci i dati.

Solution disponible après 3 tentatives