DataBase/SQL 8

[SQL] GROUP BY, HAVING 개념과 차이점

SQL에서 데이터를 그룹화하고 조건을 걸기 위해 자주 사용하는 GROUP BY와 HAVING은 혼동하기 쉬운 개념이다. 이 글에서는 두 키워드의 정의와 차이점, 그리고 함께 사용하는 방식까지 정리해보겠다. 1) GROUP BY1-1) 정의GROUP BY는 특정 컬럼을 기준으로 데이터를 그룹화하는 데 사용된다.주로 SUM, COUNT, AVG 등 집계 함수와 함께 사용한다.1-2) 특징SELECT 절에 명시된 컬럼 또는 집계 함수와 함께 사용해야 한다.WHERE 절보다 나중에 실행된다.집계된 결과를 기준으로 행을 그룹화한다.1-3) 예시SELECT department, COUNT(*)FROM employeesGROUP BY department;→ 부서별 직원 수를 구하는 쿼리이다. 2) HAVING2-1)..

DataBase/SQL 15:02:12

[SQL] 자주 쓰이는 숫자 연산 함수 정리 (ABS, POWER, SQRT, SIGN)

SQL에서는 숫자 계산 시 절댓값, 제곱, 제곱근, 부호 판단 등수학 연산이 필요한 경우가 많다.이번 글에서는 실무에서 자주 사용되는 수학 관련 숫자 함수들을 예제와 함께 정리해본다.Oracle을 기준으로 설명하며, 대부분의 DB에서 유사하게 지원된다. 1) ABS – 절댓값1-1) 문법ABS(number) 1-2) 특징입력된 숫자의 절댓값을 반환한다음수 → 양수로 변환, 양수 → 그대로 반환 1-3) 예시SELECT ABS(-10) AS a1, ABS(7.3) AS a2 FROM dual;a1: 10a2: 7.3 1-4) DB별 사용 가능 여부Oracle지원MySQL지원PostgreSQL지원MSSQL지원 2) POWER – 거듭제곱2-1) 문법POWER(base, exponent) 2-..

DataBase/SQL 2025.07.08

[SQL] 자주 쓰이는 숫자 함수 정리 (ROUND, TRUNC, CEIL, FLOOR, MOD)

SQL에서는 문자열 외에도 숫자 데이터를 다루는 경우가 많다.특히 금액 계산, 소수점 조정, 나머지 구하기 등 다양한 숫자 연산이 필요하다.이번 글에서는 실무에서 자주 사용하는 SQL 숫자 함수들을 예제와 함께 알아보자. 1) ROUND – 반올림1-1) 문법ROUND(number, decimal_places) 1-2) 특징숫자를 지정된 소수점 자리수에서 반올림한다두 번째 인자를 생략하면 정수로 반올림함 1-3) 예시SELECT ROUND(123.456, 2) AS r1, ROUND(123.456, 0) AS r2, ROUND(123.456) AS r3FROM dual;r1: 123.46r2: 123r3: 123 (자리수 생략 시 기본은 0) 1-4) DB별 사용 가능 여부Ora..

DataBase/SQL 2025.07.07

[SQL] 자주 쓰이는 문자열 함수 정리(CONCAT, SUBSTR, REPLACE, INSTR, LENGTH 등)

SQL에서 데이터를 처리하다 보면 문자열을 다루는 경우가 많다.예를 들어 이름 합치기, 특정 문자열 추출, 문자 길이 확인, 일부 치환 등 다양한 문자열 처리를 해야 할 때가 있다.이번 글에서는 실무에서 자주 사용하는 문자열 관련 SQL 함수들을 정리하고, 각 함수별 사용 예제를 함께 소개하려고 한다. 1) CONCAT - 문자열 결합: 여러 개의 문자열을 하나로 합칠 때 사용하는 함수SELECT CONCAT('홍', ' ', '길동') AS full_nameFROM dual;-- 결과: full_name = 홍 길동※ MySQL에서는 dual 없이도 실행 가능 2) SUBSTR - 문자열 자르기: 문자열에서 원하는 위치의 일부만 추출할 때 사용SELECT SUBSTR('20250617', 1, 4)..

DataBase/SQL 2025.06.24

[SQL] 공백 제거 함수(TRIM, LTRIM, RTRIM)

TRIM 함수는 문자열의 공백을 제거하는 기본적인 SQL 함수이다.LTRIM 함수, RTRIM 함수는 왼쪽과 오른쪽의 공백을 제거할 때 사용하기도 하지만,반복적인 문자나 특정 문자를 제거할 때도 자주 사용한다 1) 기본 문법1-1) TRIM 함수 : 문자열의 양쪽 공백(스페이스바)을 제거한다.TRIM("문자열") 1-2) LTRIM 함수 : 문자열의 왼쪽 공백 제거, 문자 왼쪽 반복적인 문자를 제거한다. 문자or문자열을 제거할 때는 가장 왼쪽에 제거할 문자가 있어야하고, 반복된 문자 전체를 제거한다.LTRIM("문자열", "제거할 문자")ex1) 왼쪽 공백 제거결과로 좌측 공백 2개를 제거한 것을 확인할 수 있다.ex2) 왼쪽 특정 문자열 제거위 결과를 보면, 제거할 문자열인 'HE' 앞에 공백이 있어..

DataBase/SQL 2025.05.26

[SQL] NULL 관련 SQL 함수(NVL, COALESCE, NULLIF)

SQL문에서 NULL과 관련한 함수가 다양한데,각 DB 환경과 상황에 맞춰서 사용하는 것이 중요하다.NULL 관련 함수는 활용도가 높기 때문에,각각의 함수에 대해 특징과 사용 예시를 알아보자. 1) NVL, NVL2, ISNULL, IFNULL1-1) NVL 함수: Oracle에서 사용하는 함수로, 첫 번째 인자가 NULL일 경우 두 번째 인자를 반환함SELECT NVL(COL1, 0) FROM TABLE1;1-2) NVL2 함수: Oracle에서 사용하는 함수로 NVL 함수와 유사하지만, 세 개의 인자를 받을 수 있음첫 번째 인자가 NULL이 아닌 경우 두 번째 인자를 반환하고, NULL인 경우 세 번째 인자를 반환함SELECT NVL2(COL1, COL2, 0) FROM TABLE1;1-3) ISNU..

DataBase/SQL 2025.04.21

[SQL] 쿼리 결과가 없는 경우 0으로 반환하려면?

쿼리 조건에 맞는 결과가 없는 경우에도, 값을 리턴받고 싶은 경우가 있다.이 때는 MAX 함수를 사용하여 0으로 리턴받도록 할 수 있다. 1) COALESCE 함수로만 NULL 처리한 경우WITH DATA_TABLE AS (SELECT '1' AS A FROM DUALUNION ALLSELECT '2' AS A FROM DUAL)SELECT COALESCE(A, '0') AS RESULTFROM DATA_TABLEWHERE A = '3'; 결과값위 예시 쿼리에 대한 결과가 없기 때문에, 이 결과값을 리턴받게 되는 경우 NULL이 될 것이다. 2) MAX 함수로 감싸서 NULL 처리한 경우WITH DATA_TABLE AS ( SELECT '1' AS A FROM DUAL UNION ALL ..

DataBase/SQL 2025.03.14

[SQL] ORDER BY에 조건을 주려면?

데이터 조회 결과값을 리스트로 화면에 보여주도록 개발을 하던 와중에쿼리문의 결과 행들 중 특정 행만 최하단에 오게 하도록 처리하고 싶었다.쿼리 결과값 중 특정 값을 맨 아래에 오게 하기 위해 ORDER BY에 조건을 주는 방법을 찾아보았다. CASE WHEN 1 OR 0 조건을 통해 우선순위를 줄 수 있다. 예시  ▶ A=’1000’인 데이터를 가장 뒤에 나오도록 처리함WITH DATA_TABLE AS ( SELECT '1000' AS A FROM DUAL UNION ALL SELECT '2000' AS A FROM DUAL UNION ALL SELECT '3000' AS A FROM DUAL)SELECT *FROM DATA_TABLEORDER BY (CASE WHEN A = ..

DataBase/SQL 2025.03.13