Data Manipulation Functions / Using Aggregate Functions

/* Available in MySQL and SQL Azure */
SELECT 
    CountryCode,
    JSON_ARRAYAGG(Name),
    JSON_OBJECTAGG(Name, Population) 
FROM city
GROUP BY CountryCode


CountryCode JSON_ARRAYAGG(Name) JSON_OBJECTAGG(Name, Population)
ABW ["Oranjestad"] {"Oranjestad":29,034}
AFG ["Kabul","Mazar-e-Sharif","Herat","Qandahar"] {"Kabul":1,780,000, "Mazar-e-Sharif":127,800, "Herat":186,800, "Qandahar":237,500}
AGO ["Namibe","Benguela","Lobito","Luanda","Huambo"] {"Namibe":118,200, "Benguela":128,300, "Lobito":130,000, "Luanda":2,022,000, "Huambo":163,100}
AIA ["South Hill","The Valley"] {"South Hill":961, "The Valley":595}
ALB ["Tirana"] {"Tirana":270,000}
AND ["Andorra la Vella"] {"Andorra la Vella":21,189}
ANT ["Willemstad"] {"Willemstad":2345}
ARE ["Ajman","Sharja","Abu Dhabi","al-Ayn","Dubai"] {"Ajman":114,395, "Sharja":320,095, "Abu Dhabi":398,695, "al-Ayn":225,970, "Dubai":669,181}
...

JSON_ARRAYAGG - Returns the result set as a single JSON array.
JSON_OBJECTAGG - Returns the result set as a single JSON object.