Przejdź do głównej treści
eLearner.app
Moduł 15 · Lekcja 2 z 257/57 w kursie~15 min
Lekcje modułu (2/2)

Funkcje agregacji JSON

Funkcje agregujące JSON

Integracja jest dwukierunkowa. Baza danych nie musi ograniczać się do analizowania JSON: może ją zbudować. Wyobraź sobie, że Twoje API i Node.js nie musiałyby wykonywać brudnej, intensywnej pracy polegającej na serializacji zagnieżdżonych obiektów do formatu JSON, ponieważ baza danych dostarczyła je już zbudowane prosto z dysku.

Budowanie obiektów i tablic

Zamiast klasycznej agregacji mas lub łączenia ciągów (String_agg), zwracamy się do tych funkcji:

  • json_build_object(key, value, ...) lub jsonb_build_object(...)
  • KODEF2 lub KODEF3
SQL
SELECT json_build_object('name', first_name, 'city', city) AS data
FROM customers;

Zobaczysz wydrukowane wiersze zawierające { "name": "...", "city": "..." }, całkowicie zgodne.

Ćwiczenie#sql.m15.l2.e1
Próby: 0Ładowanie...

Z tabeli „klienci” zwróć dane jako wiersze JSON odwzorowane za pomocą `json_build_object`. Zamapuj dwa klucze: „imię” powiązane z „imięm” i „mail” powiązane z „e-mailem”. Użyj `AS customer_doc` dla kolumny.

Ładowanie edytora...
Pokaż wskazówkę

json_build_object('imię', imię, 'poczta', e-mail)

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#sql.m15.l2.e2
Próby: 0Ładowanie...

Dla każdego zamówienia (`order_id`) zbuduj w jednej jednostce wszystkie zawarte w nim `product_id`. Z tabeli „order_items” uruchom `GROUP BY order_id`. Następnie wybierz `order_id` i zgromadz w tablicy JSON (JSON_AGG) tylko dane `product_id`. Nazwij tablicę `products`.

Ładowanie edytora...
Pokaż wskazówkę

JSON_AGG(id_produktu) plus klasyczna grupa by zebrać dane.

Rozwiązanie dostępne po 3 próbach