본문 바로가기

전체 글

오라클 문제 풀이 1. 서울 사람중에서 김씨와 이씨만 출력(이름)SELECT name FROM insa WHERE SUBSTR(name,1,1) IN ('김', '이') AND city='서울'; 2. 모든 테이블의 목록 출력SELECT * FROM tab; 3. INSA 테이블의 스키마(구조) 출력DESC insa; 4. 총급여 오름차순으로 출력하되 총급여가 같으면 기본급 오름차순으로 출력(이름,기본급,수당,총급여(기본급+수당))SELECT name, basicpay, sudang, sudang+basicpay pay FROM insa ORDER BY pay, basicpay; 5. 남자중에서 name, city, buseo, jikwi 필드만 출력하되 필드명은 한글로 출력SELECT name 이름, city 출신도, .. 더보기
오라클 문제 1. 서울 사람중에서 김씨와 이씨만 출력 2. 모든 테이블의 목록 출력 3. INSA 테이블의 스키마(구조) 출력 4. 총급여 오름차순으로 출력하되 총급여가 같으면 기본급 오름차순으로 출력(이름, 기본급, 수당, 총급여(기본급+수당)) 5. 남자중에서 name, city, buseo, jikwi 필드만 출력하되 필드명은 한글로 출력 6. name 필드와 변환 함수를 이용하여 입사 일을 yyyy-mm-dd 요일 형식으로 출력 한다.(이름, 부서명, 입사일) 7. 직위를 중복을 배제하여 출력 8. LIKE를 이용하여 이씨가 아닌 자료만 출력 9. 전화번호가 NULL인 경우 '전화없음'으로 치환하여 출력하며 세금은 총급여*3% 로 하되 일의자리에서 반올림한다. (세금과 총급여는 세자리마다 컴마 삽입) 10. .. 더보기
오라클 FIRST_VALUE() OVER() : 정렬된 값 중 첫번째 값 --FIRST_VALUE() OVER() -- 정렬된 값 중 첫번째 값=> 어떤값을 기준으로 할것인지 첫번쨰 ()로 쓰고 어떻게 정렬할 것인지 두번쨰 ()로 쓴다 SELECT name, buseo,basicpay, FIRST_VALUE(basicpay) OVER(PARTITION BY buseo ORDER BY basicpay DESC) 부서별최대기본급 FROM insa;=> 부서별로 기본급여의 최대값을 모두 출력한다. SELECT name, buseo,basicpay, FIRST_VALUE(basicpay) OVER(PARTITION BY buseo ORDER BY basicpay DESC)-basicpay 부서별최대급여와차이 FROM insa; 더보기
오라클 SUM OVER() : 조건에 만족하는 행의 합 구하기 -- SUM OVER() -- 조건에 만족하는 행의 합 구하기 SELECT buseo, SUM(basicpay) FROM insa GROUP BY buseo;=> 집계함수 SUM()만 사용해서 각 부서별 기본급 합을 구함 SELECT name, buseo, basicpay, SUM(basicpay) OVER(ORDER BY buseo) FROM insa;=> 각 부서에 맞는 각부서의 총합을 각 행마다 출력 함 SELECT name, buseo,jikwi,basicpay, SUM(basicpay) OVER(ORDER By buseo, jikwi), SUM(basicpay) OVER(PARTITION BY buseo ORDER BY jikwi) FROM insa; --AVG OVER() --SUM OVER(.. 더보기
오라클 COUNT() OVER() : 조건에 만족하는 행의 수 반환 - COUNT() OVER() -- 조건에 만족하는 행의 수 반환 -- 개발부 직원 중 이름, 기본급을 출력하고 각 직원의 급여보다 같거나 적게 받는 사람인원수 SELECT name,(basicpay), COUNT(*) OVER(ORDER BY basicpay) FROM insa WHERE buseo='개발부'; SELECT name,basicpay, COUNT(*) OVER(ORDER BY basicpay DESC) FROM insa WHERE buseo='개발부'; => ORDER BY랑 같이 쓰여서 basicpay 컬럼의 나열순선에 따라 행번호가 붙여진다 더보기
오라클 분석 함수( RANK OVER() / ROW_NUMBER() OVER() ) -- 분석 함수 -- RANK OVER() -- ROW_NUMBER() OVER() ** 중요 제일 많은 씀 ** -- 순위를 구함. -- RANK() OVER()는 동일 순위인 경우 1,1,3, 형식으로 출력하지만 -- ROW_NUMBER() OVER()는 동일 순위인 경우 1,2,3, 형식으로 출력 -- DENSE_RANK() OVER()는 동일 순위인 경우 1,1,2 형식으로 출력 -- ROW_NUMBER() OVER()는 매우매우매우 중요한 함수이므로 반드시 알아 둘것 !!!!!!!!!!!!!!!!!!!!!!! --기본급 내림차순으로 순위를 구하기 SELECT name, basicpay, RANK() OVER(ORDER BY basicpay DESC) 순위 FROM insa; -- 비교데이타가 똑.. 더보기
오라클 ROLLUP,CUBE,GROUPINGSET 그룹화 함수 --ROLLUP : 그룹화하고 그룹에 대한 부분합 -- CUBE : ROLLUP 결과에 GROUP BY 절의 조건에 따라 모든 가능한 그룹핑 조합에 따른 결과 출력 SELECT buseo,jikwi, SUM(basicpay) FROM insa GROUP BY buseo,jikwi; SELECT buseo,jikwi, SUM(basicpay) FROM insa GROUP BY ROLLUP (buseo,jikwi); -- 직위의 null 값이 들어간부분이 합이다. SELECT buseo,jikwi, SUM(basicpay) FROM insa GROUP BY CUBE(buseo,jikwi); --null null 총합 / 부서 null 직위의 합/ 직위 null 부서의 합/ -- GROUPING SET : G.. 더보기
오라클 ROWNUM : 쿼리의 결과의 각각의 행 순서 값을 갖는 의사 컬럼 --ROWNUM : 쿼리의 결과의 각각의 행 순서 값을 갖는 의사 컬럼 -- 주의 : ORDER BY 절이 있으면 사용하지 말것, WHERE 절에서 사용하지 말것. -- 단, ROWNUM =1로는 비교 가능 SELECT ROWNUM ㅋㅋ다스, name, basicpay FROM insa; SELECT ROWNUM, name, basicpay FROM insa ORDER BY basicpay DESC; --이상한 현상 발생 SELECT ROWNUM, name, basicpay FROM( SELECT name,basicpay FROM insa ORDER BY basicpay DESC) WHERE ROWNUM >= 10 AND ROWNUM =10 AND rnum 더보기