Ich habe Daten in einer BigQuery-Tabelle, in der jede Zeile ein Artikel in einer E-Commerce-Bestellung ist. Hier sind zum Beispiel Zeilen, die den Kauf von drei Artikeln in zwei Bestellungen zeigen:
Bestellnummer | Produkt | Menge |
---|---|---|
001 | ABC | ein |
001 | DEF | 2 |
002 | SCHREIBEN SIE DIE | ein |
Lösung des Problems
Wie @aleix-cc betonte, kann dies einfach mit der TO_JSON- Funktion erfolgen, die sich derzeit in der Vorschau befindet:
WITH orders as (
SELECT "001" as order_number, "ABC" as product, 1 as quantity UNION ALL
SELECT "001", "DEF", 2 UNION ALL
SELECT "002", "GHI", 1
)
SELECT
order_number,
TO_JSON(ARRAY_AGG(STRUCT(product, quantity))) json_value
FROM orders
GROUP BY order_number
Bearbeiten: Da dies eine Funktion in der Vorschau ist, sollten Sie sich an Mikhails Antwort halten und verwenden TO_JSON_STRING
.
Keine Kommentare:
Kommentar veröffentlichen