본문 바로가기

oracle10

[Oracle]The Blunder(풀이 성공) 문제 사원들의 이름과 ID, 월급을 담은 스키마 EMPLOYEES가 있다. 사만다는 이 스키마를 작성하며 사원들의 평균 월급을 구하려 한다. 하지만 그녀는 작성 중 키보드의 0키가 망가진 것을 알지 못했다. 후에 이를 알아차린 그녀는 잘못 입력한 월급의 평균과 원래 입력했어야 할 월급 평균의 차를 구해 수정하고자 한다. 원래 입력했어야 할 월급의 평균-잘못 입력한 월급 평균을 구하여라. 단, 소수점이 있을 경우 정수로 올림한다. Sample Input : Sample Output : 2061 내 코드: select ceil(avg(salary)-avg(to_number(replace(to_char(salary), '0', '')))) from employees; Comment: Salary 컬럼에서 잘못.. 2021. 4. 7.
[Oracle]Average Population of Each Continent(풀이 성공) 문제 두 스키마 CITY, COUNTRY가 주어진다. 두 스키마에 공통적으로 포함되는 모든 CONTINENT를 추출하고, 각 CONTINENT 별 평균값을 구하되 소수점은 버리고 출력하라. 단, CITY.COUNTRYCODE와 COUNTRY.CODE는 서로 매칭된다. 내 코드: select ct.continent, trunc(avg(c.population)) from city c inner join country ct on c.countrycode=ct.code group by continent; Comment: 두 스키마에 모두 포함되는 continent만을 출력해야 하므로 left join이 아닌 inner join을 사용해야 합니다. 또한 소수점 이하를 버리므로 반올림하는 round 함수가 아닌 t.. 2021. 4. 1.
[Oracle]Population Census(풀이 성공) 문제 두 스키마 CITY와 COUNTRY가 주어진다. column CONTINENT 'Asia'에 속하는 모든 도시의 인구 총합을 출력하라. 단, CITY.COUNTRYCODE와 COUNTRY.CODE는 서로 매칭된다. 내 코드: select sum(c.POPULATION) from CITY c left join COUNTRY con on c.COUNTRYCODE=con.CODE where CONTINENT='Asia'; Comment: 간단한 join으로 풀 수 있는 문제이다. left join의 기준을 CITY로 하느냐, COUNTRY로 하느냐를 고민할 수 있는데 '도시' 인구수의 총합을 구하는 문제이므로 기준은 CITY가 되어야 한다. 또한 select 뒤의 population에 CITY 혹은 CI.. 2021. 4. 1.
[Oracle]Weather Observation Station 6(풀이 성공) 문제 아래와 같은 column을 가진 스키마 STATION이 주어진다. CITY에서 모음(a,e,i,o,u)으로 시작하는 모든 이름을 찾아 출력하라. 단, 중복은 허용하지 않는다. 내 코드: SELECT DISTINCT CITY FROM STATION WHERE (CITY LIKE 'A%' OR CITY LIKE 'E%' OR CITY LIKE 'I%' OR CITY LIKE 'O%' OR CITY LIKE 'U%'); Comment: 중복을 허용하지 않으므로 select 뒤에 distinct를 넣어주고, like 문법을 이용해 모음으로 시작된다는 조건('시작하는 알파벳+%')을 정의할 수 있습니다. 어떤 모음이든 가장 앞에만 오면 되므로 or로 연결합니다. 2021. 3. 29.