SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » PostgreSQL » Сгруппировать в JSON данные (Сгруппировать в JSON данные)
Сгруппировать в JSON данные [сообщение #6125] Mon, 23 June 2025 23:28 Переход к предыдущему сообщению
polin11 в настоящее время не в онлайне  polin11
Сообщений: 9
Зарегистрирован: January 2023
Junior Member
Использую СУБД PostgreSQL.
Просьба помочь написать сложный запрос,
есть таблица Users
User   UserDate
Петя   2024-01-01
Петя   2024-01-01
Петя   2026-01-01
Ваня   2025-01-02
Ваня   2025-01-02
Игорь  2025-06-10
В итоге нужен json вида
{
   Петя: {
       '2024-01-01': 2,
	   '2026-01-01': 1
   }.
   Ввня: {
       '2025-01-02': 2
   }
   Игорь: {
	    '2025-06-10': 1
   }
} 
Моих знаний хватило только на такой запрос:
WITH tmp AS(
	SELECT
		COUNT(*) AS "kolvo",
		"UserData"
		"User"

	FROM  "Users"
	GROUP BY "User",  "UserData"
),
tmp1 AS(
	SELECT 
		"User",
		array_agg(
			json_build_object(
				"UserDate"::text, "Kol"
			)
		) AS "user_json"
	GROUP BY "User"
)	

SELECT 
	array_agg(
		json_build_object(
			"User", "user_json"
		)
	)
FROM tmp1
Тут в итоге получается массив json, внутри тоже массив из json.
Нужно просто json значения которого тоже json  
 
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: подзапрос в условном выражении
Следующая тема: Как правильно написать json запрос на PostgreeSQL
Переход к форуму:
  


Текущее время: Mon Jun 30 18:34:26 GMT+3 2025

Общее время, затраченное на создание страницы: 0.00785 секунд