sql >> Database teknologi >  >> RDS >> SQLite

SQLite JSON_GROUP_ARRAY()

SQLite json_group_array() funktion er en aggregeret funktion, der returnerer et JSON-array, der består af alle værdier i aggregeringen.

Med andre ord, den konstruerer en matrix ud fra de værdier, som dens argument giver.

Syntaks

json_group_array(X)

Hvor X repræsenterer det/de elementer, som det resulterende array vil bestå af.

Eksempel

Her er et simpelt eksempel til at demonstrere:

SELECT json_group_array( "Fritz" );

Resultat:

["Fritz"]

Vi kan se, at et array blev returneret med den værdi, vi har angivet.

Den sande kraft af denne funktion er imidlertid demonstreret i scenarier, der bruger aggregerede data (som i databaseeksemplerne nedenfor). Vi kunne trods alt bare have brugt json_array() funktion for ovenstående eksempel:

SELECT json_array( "Fritz" );

Resultat:

["Fritz"]

Som nævnt er denne funktions sande kraft i håndteringen af ​​aggregerede data. Derfor json_group_array() vil typisk blive brugt, når du forespørger i en database.

Databaseeksempel

Antag, at vi har følgende tabel:

SELECT * FROM Pets;

Resultat:

+-------+---------+--------+
| PetId | PetName | TypeId |
+-------+---------+--------+
| 1     | Homer   | 3      |
| 2     | Yelp    | 1      |
| 3     | Fluff   | 2      |
| 4     | Brush   | 4      |
+-------+---------+--------+

Vi kan se, at der er tre kolonner, og vi kan se deres navne.

Vi kan bruge json_group_array() sådan her:

SELECT json_group_array(TypeId)
FROM Pets;

Resultat:

[3,1,2,4]

Her oprettede jeg et array, der består af alle TypeId værdier.

Vi kan gå et skridt videre og videregive en anden JSON-funktion som argument til json_group_array() .

For eksempel, hvis vi ønskede at producere et JSON-objekt for hver række i databasen, kunne vi bruge json_object() funktion på bordet sådan her:

SELECT json_object( 
    'PetId', PetId, 
    'PetName', PetName,
    'TypeId', TypeId 
    )
FROM Pets;

Resultat:

{"PetId":1,"PetName":"Homer","TypeId":3}
{"PetId":2,"PetName":"Yelp","TypeId":1}
{"PetId":3,"PetName":"Fluff","TypeId":2}
{"PetId":4,"PetName":"Brush","TypeId":4}

Vi kan derefter bruge json_group_array() funktion til at give et ydre array:

SELECT json_group_array( 
        json_object(
        'PetId', PetId, 
        'PetName', PetName,
        'TypeId', TypeId 
        )
    )
FROM Pets;

Resultat:

[{"PetId":1,"PetName":"Homer","TypeId":3},{"PetId":2,"PetName":"Yelp","TypeId":1},{"PetId":3,"PetName":"Fluff","TypeId":2},{"PetId":4,"PetName":"Brush","TypeId":4}]

Nu, alle JSON-dokumenter, der blev produceret af json_object() er indesluttet i et array, der blev produceret af json_group_array() .


  1. Postgres kopierer Heroku Production DB til lokal udvikling DB

  2. Vælg tilfældig række fra en PostgreSQL-tabel med vægtede rækkesandsynligheder

  3. Typecast streng til heltal

  4. Sådan installeres WordPress:Serversoftwaren