SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite JSON_GROUP_ARRAY()

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() .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite Pokaż tabele

  2. Symuluj ORDER BY w SQLite UPDATE, aby poradzić sobie z ograniczeniem unikalności

  3. SQLite MAX

  4. PRAGMA table_list w SQLite

  5. ListView z Sqlite w Androidzie