Вы можете попробовать использовать row_number
оконную функцию для получения первого ключа в CTE, затем используйте -> для получения значения.
CREATE TABLE T(
col json
);
insert into t values ('{"dog":"198","cat":"2835"}');
Запрос 1 :
with getFirstKey as(
SELECT keys FROM (
SELECT keys,row_number() over(order by (select 1)) rn
FROM (
SELECT col,json_object_keys(col) keys
FROM T
) t1
) t1
where rn = 1
)
SELECT col::json->(select keys from getFirstKey)
FROM T;
Результаты :
| ?column? |
|----------|
| "198" |