SQLite json_group_array() function to funkcja agregująca, która zwraca tablicę JSON składającą się ze wszystkich wartości w agregacji.
Innymi słowy, tworzy tablicę z wartości dostarczonych przez jej argument.
Składnia
json_group_array(X)
Gdzie X reprezentuje element/y, z których będzie się składać wynikowa tablica.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT json_group_array( "Fritz" ); Wynik:
["Fritz"]
Widzimy, że została zwrócona tablica z podaną przez nas wartością.
Jednak prawdziwa moc tej funkcji jest pokazana w scenariuszach wykorzystujących dane zagregowane (jak w przykładach baz danych poniżej). W końcu mogliśmy po prostu użyć json_array() funkcja dla powyższego przykładu:
SELECT json_array( "Fritz" ); Wynik:
["Fritz"]
Jak wspomniano, prawdziwa siła tej funkcji polega na przetwarzaniu danych zagregowanych. Dlatego json_group_array() będzie zwykle używany podczas wysyłania zapytań do bazy danych.
Przykład bazy danych
Załóżmy, że mamy następującą tabelę:
SELECT * FROM Pets; Wynik:
+-------+---------+--------+ | PetId | PetName | TypeId | +-------+---------+--------+ | 1 | Homer | 3 | | 2 | Yelp | 1 | | 3 | Fluff | 2 | | 4 | Brush | 4 | +-------+---------+--------+
Widzimy, że są trzy kolumny i widzimy ich nazwy.
Możemy użyć json_group_array() tak:
SELECT json_group_array(TypeId)
FROM Pets; Wynik:
[3,1,2,4]
Tutaj utworzyłem tablicę, która składa się ze wszystkich TypeId wartości.
Możemy pójść o krok dalej i przekazać kolejną funkcję JSON jako argument do json_group_array() .
Na przykład, jeśli chcielibyśmy stworzyć obiekt JSON dla każdego wiersza w bazie danych, moglibyśmy użyć json_object() funkcja na stole w ten sposób:
SELECT json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
FROM Pets; Wynik:
{"PetId":1,"PetName":"Homer","TypeId":3}
{"PetId":2,"PetName":"Yelp","TypeId":1}
{"PetId":3,"PetName":"Fluff","TypeId":2}
{"PetId":4,"PetName":"Brush","TypeId":4}
Następnie możemy użyć json_group_array() funkcja zapewniająca zewnętrzną tablicę:
SELECT json_group_array(
json_object(
'PetId', PetId,
'PetName', PetName,
'TypeId', TypeId
)
)
FROM Pets; Wynik:
[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{"PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]
Teraz wszystkie dokumenty JSON, które zostały utworzone przez json_object() są zawarte w tablicy, która została utworzona przez json_group_array() .