| Начало » Использование СУБД » PostgreSQL » Подсчитать сумму элементов jsonb Переход к форуму:
	| 
		
			| Подсчитать сумму элементов jsonb [сообщение #5863] | Thu, 23 January 2025 02:44 |  
			| 
				
				
					|  polin11 Сообщений: 9
 Зарегистрирован: January 2023
 | Junior Member |  |  |  
	| Использую PGSQL. Есть 2 поля в таблице One(jsonb), Two(jsonb)
 
 каждое поле всегда состоят из 3 jsonb элементов
 
 
 Для поля One  нужно посчитать сумму всех элементах во всех 3 jsonb для примера вышеПример:
One: [{'А': 10, 'B': 5},{'C': 6},{'D': 1}]
Two: [{'A_1': 'A_2', 'A_3': 'A_4'}, {'B_1': 'B_2'}, {'D_1': 'D_2'}][/SQL]сумма будет 10+5+6+1=22.
 
 Для поля Two  нужно посчитать количество всех ключей во всех 3 json для примера выше
 количество будет 4.
 
 Написал такой запрос
 
 
 Проблема возникла, что запрос не выполняется на PGSQL 10 и ниже, в нем нельзя обращаться к jsonb по индексу "One"[0].select 
	(
		select sum(v::int) from jsonb_each("One"[0] || "One"[1] || "One"[2]) AS x(k, v)
		where  jsonb_typeof(v) = 'number'  
	) as "sum_jsonb",
	(
		select count(*) from jsonb_object_keys("Two"[0] || "Two"[1] || "Two"[2]) 
	) as "count_jsonb"
from TПросьба помочь, как проще написать данный запрос, чтобы можно было выполнить на старой версии PGSQL
 
 |  
	|  |  | 
 
 
 Текущее время: Fri Oct 31 16:27:51 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.00945 секунд |