[PostgreSQL] MyBatis에서 PostgreSQL JSON 데이터 처리하기
·
Coding/PostgreSQL
1. PostgreSQL에서 JSONB 데이터 평균 구하기JSONB 컬럼이 포함된 테이블에서 특정 키(예: "efficiency") 값을 필터링하고 평균을 구하는 기본적인 SQL 쿼리는 다음과 같습니다.SELECT key AS tag_name, AVG(value::NUMERIC) AS avg_valueFROM sensor_data, LATERAL jsonb_each_text(outputs)WHERE timestamp_col BETWEEN '2024-01-01 00:00:00' AND '2024-01-31 23:59:59' AND key ILIKE '%efficiency%' AND (value::NUMERIC) BETWEEN 0 AND 100GROUP BY key;이 쿼리는..
[PostgreSQL] JSON 포맷 데이터 집계
·
Coding/PostgreSQL
PostgreSQL에서 JSON 형식의 데이터를 분석하려면 jsonb 데이터를 다룰 수 있는 함수와 연산자를 사용하면 됩니다. status 컬럼에 저장된 JSON 데이터에서 각 키별로 값의 종류와 그 개수를 계산하려면 jsonb_each_text 함수와 GROUP BY를 조합하여 쿼리를 작성할 수 있습니다.예제 테이블 구조CREATE TABLE example_table ( id SERIAL PRIMARY KEY, status JSONB);-- 데이터 삽입INSERT INTO example_table (status) VALUES('{"key1": "good", "key2": "critical"}'),('{"key1": "good", "key2": "warning"}'),('{"key1": "ba..
[PostgreSQL] 데이터 타입이 text 이고, JSON 문자열인 열의 값 수정
·
Coding/PostgreSQL
PostgreSQL에서 JSON 문자열의 특정 값을 수정하는 방법PostgreSQL에서 JSON 형태의 데이터를 문자열로 저장하고 있을 때, 특정 값을 업데이트하려면 문자열 데이터를 JSON으로 변환하여 수정한 뒤 다시 문자열로 변환해야 합니다. 아래는 JSON 문자열에서 upperLimit 또는 lowerLimit 값을 수정하는 방법을 설명합니다.문제 상황컬럼에 아래와 같은 JSON 문자열이 저장되어 있다고 가정합니다:{ "type": "default", "type": "default", "spec": { "upperLimit": 4.0, "lowerLimit": 0.0 }}여기에서:upperLimit 값을 기존 값과 상관없이 새 값으로 수정하고 싶습니다.또는 lowerLimit 값을..
[PostgreSQL] 기존 데이터를 참조하여 INSERT
·
Coding/PostgreSQL
PostgreSQL: 기존 데이터를 참조하여 INSERT 문 작성하기이번 포스팅에서는 PostgreSQL에서 기존 데이터를 참조해 새로운 데이터를 삽입하는 INSERT 문을 작성하는 방법을 알아보겠습니다. 특히 JSON 형식 데이터를 다룰 때 특정 값을 변환하여 새 컬럼에 저장하는 방법을 중심으로 설명합니다.문제 상황테이블에 JSON 형식의 데이터를 가진 컬럼이 있습니다.JSON 데이터 중 intervals 키의 첫 번째 배열 값을 가져온 뒤, 문자열을 / 기준으로 나누어 두 번째 값을 새로운 컬럼에 삽입하려고 합니다.예제 테이블 구조테이블 이름: example_table컬럼 이름데이터 타입설명idINTEGER기본 키dataJSONJSON 형식 데이터new_columnTEXT새로운 데이터 컬럼SQL 문 ..