본문 바로가기

SQL74

*매우중요 oracle developer 기초3. GROUP BY, WHERE, HAVING의 효율적 코드 # GROUP BY 예시1 SELECT '영업부', AVG(salary) FROM tstaff WHERE depart = '영업부'; 우선 이것은 그룹핑이 된 쿼리는 아니다. 하지만 단순히 출력의 대상이 1개로 집약되는 이와 같은 쿼리는 또 출력이 가능하다는게 신기하다. 예시2 SELECT depart AS 부서명, ROUND(AVG(salary),2) AS 월급평균 FROM tstaff GROUP BY depart; 이전에 2개 이상을 SELECT 해서 노출하고 싶었던 기능 그대로다. 예시3 SELECT depart, COUNT(*), MAX(joindate), ROUND(AVG(score),2) FROM tstaff GROUP BY depart; 예시3에는 SELECT로 무더기로 4개의 값을 선택하였.. 2022. 9. 9.
oracle developer 문제풀이7. MAX, MIN (문법 보완 필요) 이번 섹션에 대한 문제풀이 자체는 사실 쉬웠다. 하지만, 내포되어있는 의미중에서 더욱 상세히 출력해주고자 하는 SELECT name, MAX(salary)등으로 표현을 해주면 문법 오류로써 튕겨나오곤 했다. 이를 해결하기 위해서는 서브쿼리등의 방법을 이용해야할 것 같긴한데 문제는 그것에 대한 사용법을 아직 모른다는 점이다. 이 부분들 반드시 숙지하고 문법 보완을 할 필요가 있다. 문제1. 여직원 중 최고 월급은 얼마인지 조사하라 SELECT MAX(salary) FROM tstaff WHERE gender ='여'; 문제2. 총무부 직원이 최초로 입사한 날짜를 구하라 SELECT MIN(joindate) FROM tstaff WHERE depart = '총무부'; 2022. 9. 9.
oracle developer 기초2. 최상위 출력 방법 LIMIT, OFFSET FETCH, TOP + 활용 문제풀이 이번 단원은 확실히 난이도가 향상된 느낌을 많이 받았다. 그도 그럴것이 하나의 툴만 사용하면 사실 익숙해져서 이건 아무것도 아니라고 느낄것인데 각 툴마다 최상위 출력 방법이 달라버리면, 익숙해지지 않은 입장에선 어렵다고 느껴지기 때문이다. 내게 가장 익숙한 툴이야 postgreSQL이고, 그걸로 최상위 출력한다 치면 LIMIT로 앳저녁에 끝냈겠지만 dbms의 툴은 postgreSQL말고도 여러가지 니깐.. # 기본 최상위 출력 방법 1. oracle developer 방법1 # 서브쿼리 문제1. 면적이 넓은 상위 4개의 도시를 골라보자 SELECT * FROM (SELECT * FROM tcity ORDER BY area DESC) WHERE rownum 2022. 9. 9.
oracle developer 문제풀이5. IN 문제1. 총무부나 영업부에 근무하는 직원의 목록을 조사하라 SELECT name AS 직원이름, depart AS 부서명 FROM tstaff WHERE depart IN ('총무부', '영업부'); 문제2. 인사과나 영업부에 근무하는 대리의 목록을 조사하라 SELECT name AS 직원이름, depart AS 부서명, grade AS 직급 FROM tstaff WHERE depart IN ('인사과', '영업부') AND grade = '대리'; 문제3. 차장급 이상의 여직원 목록을 조사하라 SELECT name AS 직원이름, gender AS 성별, grade AS 직급 FROM tstaff WHERE gender = '여' AND grade IN ('차장', '부장', '이사'); 2022. 9. 9.