본문 바로가기

sql함수7

[Oracle SQL] SQL 함수 - 그룹 함수 GROUP BY, HAVING 그룹 함수를 사용할 때 주의해야 할 사항이 있습니다. SELECT 뒤에 일반 컬럼과 그룹 함수를 동시에 사용할 수 없다는 것입니다. 30번 부서에 속하는 사원들의 이름과 30번 부서의 인원수를 검색하고자 다음의 SQL문을 실행했을 때 오류가 발생하는 것을 확인할 수 있습니다. SELECT ename, COUNT(*) FROM emp WHERE deptno=30; 30번 부서에 속하는 사원은 6명입니다. 이들의 이름을 출력하면 행이 6개인데, COUNT 함수를 통해 출력하는 인원수는 1개의 행입니다. 즉 서로 출력해야 되는 결과의 개수가 달라집니다. 이때 필요한 것이 GROUP BY 절입니다. 1. GROUP BY 절 특정 컬럼값을 기준으로 그룹으로 묶을 때 사용합니다. 기본 문법은 다음과 같습니다. SE.. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 그룹 함수 (SUM, AVG, MAX, MIN, COUNT) 함수는 크게 단일행 함수와 다중행 함수(그룹 함수)로 나뉩니다. 앞서 살펴본 단일행 함수와 달리 그룹 함수는 여러 행 또는 테이블 전체에 함수가 적용되어 하나의 결과를 반환합니다. 1. SUM 함수 null값을 제외한 해당 컬럼 값들의 총합을 구합니다. SUM( DISTINCT | ALL | 컬럼명 ) DISTINCT 키워드는 중복된 값을 제외한다는 것으로, 생략하면 ALL이 기본적으로 적용됩니다. 사원들의 월급의 총합을 구하는 SQL문입니다. SELECT SUM(DISTINCT sal), SUM(ALL sal), SUM(sal) FROM emp; --> 23675 --> 24925 --> 24925 2. AVG 함수 null값을 제외한 해당 컬럼 값들의 평균을 구합니다. AVG( DISTINCT | A.. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 단일행 함수 (5) 조건 함수 오라클에는 자바에서 사용하는 if문, case문과 같이, 조건에 따라 SQL문을 다르게 처리할 수 있는 DECODE 함수와 CASE 함수가 있습니다. DECODE 함수는 조건이 반드시 일치하는 경우에 사용하는 함수이며, CASE 함수는 조건이 반드시 일치하지 않아도 범위 비교가 가능한 경우에 사용하는 함수입니다. 1. DECODE 함수 조건이 반드시 일치해야 하는 경우에 사용합니다. 따라서 동등 연산자(=)에 대해서만 사용될 수 있습니다. DECODE(컬럼, 비교값1, 결과값1, 비교값2, 결과값2, ... 비교값n, 결과값n, 기본결과값) 다음은 월급이 3000이면 30%를, 월급이 5000이면 20%를 보너스로 지급하고, 나머지 사원은 100%를 지급하는 SQL문입니다. SELECT ename,sal.. 2022. 5. 11.
[Oracle SQL] SQL 함수 - 단일행 함수 (4) 변환 함수 오라클의 데이터 타입은 숫자, 문자, 날짜 세 가지입니다. 변환 함수를 통해 데이터 형을 명시적으로 변환시킬 수 있습니다. 함수 설명 TO_NUMBER 문자 데이터를 숫자 데이터로 변환 TO_DATE 문자 데이터를 날짜 데이터로 변환 TO_CHAR 숫자나 날짜 데이터를 문자 데이터로 변환 1. TO_CHAR 함수 숫자나 날짜 데이터를 문자 데이터로 변환합니다. 데이터 형 변환시 어떤 형식으로 출력할지 지정할 수 있습니다. 문자 데이터로 반환되므로 출력 형식은 반드시 작은따옴표로 기술해야 합니다. TO_CHAR(number|date, 'format') 중간에 쉼표가 들어간 형식의 문자 형태로 변환하는 SQL문입니다. 숫자 데이터가 문자 데이터로 변환되었습니다. SELECT TO_CHAR(123456,'99.. 2022. 5. 10.
[Oracle SQL] SQL 함수 - 단일행 함수 (3) 날짜처리 함수 단일행 함수 중 날짜처리 함수는 날짜 데이터 타입에 사용하는 함수입니다. 함수 설명 SYSDATE 시스템의 현재 날짜를 반환 MONTHS_BETWEEN 두 날짜 사이의 개월수를 반환 ADD_MONTHS 특정 개월수를 더하거나 뺀 날짜를 반환 NEXT_DAY 지정된 날짜로부터 가장 가까운 요일에 해당하는 날짜를 반환 LAST_DAY 해당 날짜가 속한 달의 마지막 날짜를 반환 ROUND 가장 가까운 년도 또는 월로 반올림하여 반환 TRUNC 가장 가까운 년도 또는 월로 절삭하여 반환 날짜 데이터를 다루기에 앞서서 날짜 데이터의 기본적인 포맷을 확인해 보기 위해 다음의 SQL문을 실행합니다. SELECT * FROM NLS_SESSION_PARAMETERS; 이 SQL문은 오라클에 저장된 여러 가지 파라미터 .. 2022. 5. 10.
[Oracle SQL] SQL 함수 - 단일행 함수 (2) 숫자처리 함수 이번 글에서는 단일행 함수 중 숫자처리 함수를 정리해 보겠습니다. 함수 설명 ROUND 지정한 자리 수 이하에서 반올림하여 반환 TRUNC 지정한 자리 수 이하에서 절삭한 결과를 반환 MOD 나누기 연산을 한 후 나머지 값을 반환 CEIL 주어진 숫자값보다 크거나 같은 최소 정수값을 반환 FLOOR 주어진 숫자값보다 작거나 같은 최대 정수값을 반환 SIGN 주어진 값이 양수인지 음수인지 0인지 식별할 수 있는 값을 반환 1. ROUND 함수 지정한 자리 수 이하에서 반올림한 결과를 반환합니다. ROUND(컬럼명|표현식, [n]) n은 반올림하기 위한 자리 수로서, n이 양수면 소수 자리를 반올림하고 음수면 정수 자리를 반올림합니다. 0이 기본값이기 때문에 생략하면 소수점에서 반올림합니다. 소수점 두 번째.. 2022. 5. 9.
[Oracle SQL] SQL 함수 - 단일행 함수 (1) 문자처리 함수 함수는 데이터를 조작하는 데 사용되며 기본적인 SQL문을 더욱 강력하게 해 줍니다. 함수는 입력(input)과 출력(output)으로 구성되며, 입력으로 설정된 데이터를 함수가 내부적으로 가공하여 출력을 통해 반환합니다. 함수를 크게 두 가지로 나눌 수 있습니다. 단일행 함수는 모든 행에 대하여 각각 적용되어 행의 개수와 동일한 개수를 반환합니다. 다중행 함수(그룹 함수)는 검색되는 모든 행에 대하여 한 번만 적용되고 한 개의 결과만을 반환합니다. 아래 그림으로 확인할 수 있습니다. 단일행 함수는 SELECT, WHERE, ORDER BY절에 사용 가능하며, 처리하는 데이터 종류에 따라 문자처리 함수, 숫자처리 함수, 날짜처리 함수, 변환 함수, 일반 함수로 구분됩니다. 이번 글에서는 문자처리 함수를 정.. 2022. 5. 8.