오라클에 제공하는 AVG 함수를 이용하면 컬럼의 평균값을 구할 수 있다. 이 때 함수가 null 값을 처리하는 방법을 잘 알지 못하면 평균값이 제대로 구해지지 않을 수 있다. 테이블 쿼리 COMM 컬럼의 합계는 2200 테이블의 ROW 수는 5개이기 때문에 COMM_A의 결과가 440(2200 ÷ 5)이 나와야 했는데 550(2200 ÷ 4)으로 계산되었다. 컬럼이 null인 경우 집계함수가 처리하지 않기 때문에 null 처리를 해주어야 한다.(NVL 함수 사용법) SELECT AVG(COMM) AS COMM_A FROM EMP WHERE SAL BETWEEN 1200 AND 1600 SELECT AVG(NVL(COMM, 0)) AS COMM_A FROM EMP WHERE SAL BETWEEN 1200 ..
ORA-00913: 값의 수가 너무 많습니다 ORA-00913: too many values INSERT 구문에 삽입될 컬럼의 개수보다 들어가는 데이터의 개수가 더 많은 경우 발생하는 에러이다. 쿼리 INSERT INTO EMP ( EMPNO,ENAME,JOB ) VALUES ( 9999,'TEST','BLOGGER','DUMMY' ) INSERT 구문의 컬럼 개수는 3개지만 VALUES에 값이 4개이기 때문에 값을 삽입할 수 없는 상황이다. 해결 INSERT INTO EMP ( EMPNO,ENAME,JOB ) VALUES ( 9999,'TEST','BLOGGER' ) INSERT 컬럼 개수와 삽입하려는 데이터의 개수를 맞춰주면 해결가능하다.
LISTAGG 예제1 LISTAGG 괄호에 속한 ename 을 쉼표(',') 구분자를 이용해 출력할 것이며 출력할 데이터는 ename으로 정렬되어 출력된다. LISTAGG 함수를 이용한다면 GROUP BY 절은 필수로 지정해주어야한다. SELECT deptno, LISTAGG(ename, ',') within group (order by ename) AS EMPLOYEE FROM emp GROUP BY deptno LISTAGG 예제2 연결연산자를 이용해 각 사원의 월급을 함께 출력할 수 있다. ORDER BY 절에서 월급을 내림차순으로 정렬하게되면 월급이 높은 사람순으로 출력할 수 있다. SELECT deptno , LISTAGG(ename||'('||SAL||')', ',') within group ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 없어진 기록 찾기 SELECT A.ANIMAL_ID , A.NAME , B.ANIMAL_ID , B.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE A.ANIMAL_ID = B.ANIMAL_ID (+) ORDER BY B.NAME 있었는데요 없었습니다 SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE A.ANIMAL_ID = B.ANIMAL_ID AND A.DATETIME > B.DATETIME ORDER BY ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 고양이와 개는 몇 마리 있을까 SELECT ANIMAL_TYPE , COUNT(ANIMAL_TYPE) AS count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE 동명 동물 수 찾기 SELECT NAME , COUNT(NAME) AS COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME 입양 시각 구하기(1) - [MySQL] SEL..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최댓값 구하기 SELECT MAX(DATETIME) FROM ANIMAL_INS 최솟값 구하기 SELECT MIN(DATETIME) FROM ANIMAL_INS 동물 수 구하기 SELECT COUNT(*) FROM ANIMAL_INS 중복 제거하기 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION LIKE 'Sick' ORDER BY ANIMAL_ID; 어린 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE IN..
SYS_CONNECT_BY_PATH를 이용하면 CONNECT BY를 통해 가져온 값을 마치 루트노드로 부터 경로를 표시하는 것과 같이 표현한다. (이전 예제 참조) SELECT ename , SYS_CONNECT_BY_PATH(ename, '/') as PATH FROM EMP START WITH ename='KING' CONNECT BY PRIOR empno = mgr; LTRIM을 이용해 앞에 출력되는 '/'를 제거하고 출력할 수 있다. LTRIM(SYS_CONNECT_BY_PATH(ename, '/'), '/') as PATH 이전 예제와 함께 활용하면 노드간의 계층도를 시각적으로 표현 할 수도 있다. RPAD(' ', (level-1)*3) || LTRIM(SYS_CONNECT_BY_PATH(en..
- Total
- Today
- Yesterday
- CS
- 프로그래머스
- C
- JSP
- 인턴
- 백준
- HeidiSQL
- CSS
- 환경설정
- SQL
- 스프링부트
- JVM
- 개발용어
- 오라클
- 국비교육
- svn
- Thymeleaf
- C++
- 부트스트랩
- 네트워크
- 오류
- 데이터베이스
- 이클립스
- Open API
- Java
- 넥사크로
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |