Saltar al contenido principal
eLearner.app
Módulo 15 · Lección 2 de 257/57 en el curso~15 min
Lecciones del módulo (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.

Ejercicio#sql.m15.l2.e1
Intentos: 0Cargando...

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.

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Ejercicio#sql.m15.l2.e2
Intentos: 0Cargando...

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\`.

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos