728x90
반응형

DB 228

[DB] LISTAGG / STRING_AGG

✅ 1. 기본 개념항목LISTAGG (Oracle)STRING_AGG (PostgreSQL, SQL Server)목적문자열 집계 (여러 행 → 하나의 문자열)동일지원 DBOraclePostgreSQL, SQL Server 등기본 구문LISTAGG(col, ', ') WITHIN GROUP (ORDER BY col)STRING_AGG(col, ', ')정렬WITHIN GROUP (ORDER BY col) 필요ORDER BY col 옵션 제공 (WITHIN GROUP 아님)중복 제거DISTINCT 서브쿼리 필요DISTINCT 바로 사용 가능 (PostgreSQL 13+) ✅ 2. 예제 비교📌 Oracle (LISTAGG)SELECT DEPT_ID , LISTAGG(EMP_NAME, ', ') WIT..

DB 2025.05.16

[DB][Oracle] LISTAGG

LISTAGG는 Oracle DB를 포함한 SQL 데이터베이스에서 여러 행의 값을 하나의 문자열로 집계(Aggregation) 할 때사용하는 함수입니다.주로 그룹화된 데이터를 문자열로 연결할 때 유용합니다.📌 기본 문법LISTAGG(column_name, 'delimiter') WITHIN GROUP (ORDER BY column_name) column_name: 연결할 열 이름'delimiter': 각 값 사이에 넣을 구분자 (예: ',', ' | ', 등)WITHIN GROUP (ORDER BY ...): 연결할 값들의 정렬 순서를 지정📌 예시예제 테이블: STUDENT_COURSESTUDENT_IDCOURSE_NAME1001Math1001Science1001History ▶ LISTAGG 사용S..

DB 2025.05.15

[DB][Oracle] INSTR

INSTR는 SQL에서 문자열 내에서 특정 문자열의 위치를 찾는 함수입니다. 📌 기본 문법: INSTR(string, substring [, start_position [, occurrence]])📘 파라미터 설명:string: 검색 대상 문자열substring: 찾고자 하는 부분 문자열start_position (선택): 검색을 시작할 위치 (기본값은 1)occurrence (선택): 몇 번째로 나타나는 substring을 찾을지 (기본값은 첫 번째) INSTR(KM.CUST_CD, #{param.sortCustCds}) DESC은 특정 고객 코드(KM.CUST_CD)가 정렬 우선순위 대상 문자열(#{param.sortCustCds})에얼마나 앞에 있는지를 기준으로 정렬하는 SQL 구문 일부입니다..

DB 2025.04.11

[DB][SQL] COUNT(DISTINCT *)/ COUNT(*) 차이

✅ COUNT(DISTINCT A.userid)설명: 같은 userid가 여러 번 등장하더라도 한 번만 계산됩니다.의미: 유니크한 사용자 수, 즉 조회한 고객 수(중복 제거)예시:👉 COUNT(DISTINCT userid) = 3 (user1, user2, user3)useriduser1user2user1user3✅ COUNT(A.userid)설명: userid가 중복되더라도 전부 카운팅합니다.의미: 총 조회 수(누적)예시 (같은 테이블):👉 COUNT(userid) = 4🧩 정리:항목의미중복 제거 여부사용 예COUNT(DISTINCT A.userid)조회한 고객 수✅ 제거됨"몇 명이 봤는가?"COUNT(A.userid)총 조회 횟수❌ 제거되지 않음"몇 번이나 봤는가?"

DB 2025.03.31

[DB][MySQL] STR_TO_DATE 함수

MySQL에서 문자열을 특정한 날짜 형식으로 변환하는 함수입니다.주로 날짜 또는 시간이 문자열로 저장된 데이터를 DATETIME, DATE, TIME 형식으로 변환할 때 사용됩니다.STR_TO_DATE(string, format)string: 변환할 문자열format: 문자열의 날짜/시간 형식을 지정하는 포맷 문자열 자주 사용하는 포맷 코드코드설명예시%Y4자리 연도2024%y2자리 연도24%m2자리 월 (01~12)03%d2자리 일 (01~31)15%H24시간제 시 (00~23)14%i분 (00~59)30%s초 (00~59)45%pAM/PMAM%h12시간제 시 (01~12)02  1. 문자열을 날짜(DATE)로 변환SELECT STR_TO_DATE('2024-03-14', '%Y-%m-%d');✅ 결과:..

DB 2025.03.14

[DB][Mybatis][MySQL] 공백에 영향 받지 않고 검색어로 데이터 조회하기

searchWord가 null이 아니고 비어 있지 않은 경우에만 실행됩니다.즉, 검색어(searchWord)가 있을 때만 SQL 조건이 추가됩니다.searchWord.split(' '):searchWord를 공백 기준으로 나눈 배열을 생성합니다.예를 들어, searchWord가 "apple orange banana"라면, ["apple", "orange", "banana"]로 나뉩니다.item="searchWord":나눠진 각 단어가 searchWord라는 변수로 순회됩니다.open="AND (", close=")":결과가 존재할 경우 AND (로 시작하고 )로 닫힙니다.separator=") AND (":각 검색어 조건 사이에 ) AND (를 추가

DB 2025.03.12
728x90
반응형