테이블에 jsonb 필드에 대한 특정 쿼리를 수행하려고하지만 최종 출력을 int로 가져 오는 데 문제가 있습니다. 아래 형식으로 JSONB 필드로 각 행을 가정하면 각 제품별로 총 주문 수를 얻고 싶습니다. 이 총을 보인다 그러나JSONB 필드에 값 집계
product | total
Product A | 10
Product B | 15
Product C | 0
가 jsonb 필드 : 나는 제품이 총을 얻을 수있어이와
select key as product, value::json->'orders'->'total' as total
from table, jsonb_each_text(json_field)
group by key, value;
:
{
"Product A": {
"orders": {"total": 2, "stuff": 3}
"..."
},
{
"Product B": {
"orders": {"total": 1, "stuff": 1}
"..."
},
{
"Product C": {
"orders": {"total": 5, "stuff": 0}
"..."
}
}
나는 쿼리를 수행 한 , 나는 (값 :: json -> 'orders'-> 'total') :: numeric을 사용하려고 시도했으나 캐스트가 불가능하다고 말합니다. 제발 도와 줄 수있어? -> '순서'
이(value::json->'orders'->'total')::text::numeric
당신은'jsonb_each (json_field)'와'값을 사용한다 : 필요
처럼를 숫자로 변환하기 전에 텍스트로 변환 : – pozs
차가움. 고맙습니다. – absg