K디자인의 누구보다라도 많이 받는 사원
문제
K디자인 의 급여 수준을 기준으로 삼아, 그보다 많이 받는 사원을 보려고 한다.
조건은 "K디자인의 어느 사원보다라도 많이 받는" 것이다. K디자인에 사원이 셋 있고 급여가 3500, 5500, 6000 이라면, 그 가운데 한 명보다라도 많이 받으면 고른다. 3500 보다 많으면 조건에 맞는다. 그러니까 K디자인에서 가장 적게 받는 사원의 급여보다 많이 받으면 고르는 것이다.
K디자인의 어느 사원보다라도 급여를 많이 받는 사원의 이름과 회사 이름, 급여를 급여 오름차순으로 조회하여라.
K디자인의 사원도 조건에 맞으면 고른다. 급여가 겹치는 소속은 없으므로 급여순으로 세우면 줄의 차례가 하나로 정해진다.
첫째 벌에서의 결과
첫째 벌의 자료에 대하여 나와야 하는 결과입니다. 나머지 열다섯 벌에서는 값과 줄의 수가 다릅니다.
| employee | company | pay |
|---|---|---|
| 임민정 | 서울방송 | 4000 |
| 김영희 | 천국테크 | 4500 |
| 이선희 | 빛나리 | 4600 |
| 홍길동 | 천국테크 | 5000 |
| 박지은 | K디자인 | 5500 |
| 이순신 | 내일은개발왕 | 6500 |
| 임꺽정 | 내일은개발왕 | 7000 |
입력 조건
이 문제의 자료에는 표가 셋 있습니다.
employee 는 사원입니다.
| 칸 | 형 | 뜻 |
| --- | --- | --- |
| employee_id | INTEGER | 사원 번호 |
| name | VARCHAR(30) | 이름. 한 벌 안에서 겹치지 않습니다 |
| age | INT | 나이 |
| gender | VARCHAR(30) | 성별 |
| address | VARCHAR(100) | 사는 시 |
company 는 회사입니다.
| 칸 | 형 | 뜻 |
| --- | --- | --- |
| company_id | INTEGER | 회사 번호 |
| name | VARCHAR(30) | 회사 이름. 한 벌 안에서 겹치지 않습니다 |
| category | VARCHAR(30) | 업종 |
| address | VARCHAR(100) | 회사가 있는 시 |
affiliation 은 어느 사원이 어느 회사에 얼마를 받고 다니는지입니다.
| 칸 | 형 | 뜻 |
| --- | --- | --- |
| affiliation_id | INTEGER | 소속 번호 |
| employee_id | INT | 사원 번호 |
| company_id | INT | 회사 번호 |
| pay | INT | 급여. 한 벌 안에서 겹치지 않습니다 |
| entry_date | DATE | 입사한 날 |
사원 한 명의 소속은 꼭 하나입니다. 한 사원이 두 회사에 다니는 일은 없고, 소속이 없는 사원도 없습니다. 모든 회사에는 사원이 한 명 이상 있습니다. 회사 이름 '천국테크' 와 'K디자인' 은 어느 벌에나 하나씩 있습니다.
이 문제는 표 셋을 모두 봅니다. 'K디자인' 은 어느 벌에나 하나씩 있고 사원이 한 명 이상 있습니다.
자료는 열여섯 벌이 있습니다. 표의 짜임과 칸은 열여섯 벌이 모두 같고, 들어 있는 값과 줄의 수가 벌마다 다릅니다. 낸 질의는 열여섯 벌 위에서 차례로 돌고, 열여섯 벌의 결과가 모두 맞아야 통과합니다.
첫째 벌의 자료는 문제 화면의 [자료] 칸에 있습니다. 나머지 열다섯 벌은 화면에 안 그려지지만, 질의가 당신 브라우저에서 도는 구조라 열여섯 벌이 모두 당신 기기로 내려갑니다. 보시려면 보실 수 있습니다. 숨겨 둔 척하지 않겠습니다.
그래서 한 벌이 아니라 열여섯 벌로 두었습니다. 한 벌이면 결과만 외워 적어도 통과합니다. 열여섯 벌이면 외워 적은 답이 그 벌에서만 맞습니다. 열여섯 벌의 답을 모두 손으로 적어 내는 길이 남아 있기는 한데, 낸 질의는 푼 사람 칸에 그대로 걸립니다. 막는 쪽보다 드러나는 쪽을 골랐습니다. 기대하는 결과의 지문은 서버만 가지고 있어서, 내보기 전에는 맞는지 확인할 수 없습니다.
출력 조건
조건에 맞는 사원의 이름과 회사 이름, 급여를 급여 오름차순으로 출력합니다.
칸은
employee,company,pay세 개이고 이 차례입니다. 첫째와 둘째 칸은AS로 이름을 맞춥니다.| 칸 | 무엇 |
| --- | --- |
| employee | 사원 이름 |
| company | 그 사원이 다니는 회사 이름 |
| pay | 급여 |
채점은 칸 이름과 값과 줄 순서를 모두 견줍니다. 칸 이름이 다르면 값이 맞아도 틀린 것으로 봅니다. 그래서 필요한 칸 이름을 위에 적어 두었고, 그 이름이 나오도록
AS를 쓰면 됩니다.
요구사항
- K디자인에서 가장 적게 받는 사원의 급여보다 많이 받는 사원을 고릅니다
- K디자인의 사원도 조건에 맞으면 넣습니다
- 칸은 employee, company, pay 세 개입니다
- 급여 오름차순으로 세웁니다
- 이 문제는 프롬프트가 아니라 질의(SQL)를 냅니다. 그 질의는 이 기기의 브라우저에 올라온 SQLite 에서 돌고, 서버로는 나온 결과표의 지문만 갑니다. 맞았는지는 서버가 정합니다.
- 견주는 것은 글이 아니라 결과표입니다. 칸 이름과 값과 줄 순서를 모두 봅니다. 칸 이름이 다르면 값이 맞아도 틀린 것으로 봅니다.
- 자료는 16벌입니다. 첫째 벌은 화면에 그려지고, 나머지도 질의가 당신 기기에서 돌기 때문에 모두 내려갑니다.
- 자료 16벌의 결과가 모두 맞아야 해결입니다.
참고 사항
풀이에 도움이 되는 배경입니다. 지켜야 하는 규격은 위의 입출력 조건과 요구사항에 있습니다.
값 하나를 내는 질의는 견주는 자리에 바로 넣을 수 있습니다.
AND a.pay > ( SELECT MIN(temp2.pay) FROM company AS temp1, affiliation AS temp2 WHERE temp1.company_id = temp2.company_id AND temp1.name = 'K디자인' )
> ANY 는 > MIN 과 같고, > ALL 은 > MAX 와 같습니다. "어느 하나보다라도 크다" 는 가장 작은 것보다 크다는 뜻이고, "모두보다 크다" 는 가장 큰 것보다 크다는 뜻입니다. sqlite3 에는 ANY 와 ALL 이 없으므로 MIN 과 MAX 로 적습니다.
SQLite 로 풀기
답이 가져야 하는 칸 employee, company, pay
자료
첫째 벌입니다. 나머지 0벌은 짜임이 같고 값이 다릅니다.
자료를 받고 있습니다
질의
돌려보기는 첫째 벌에서만 돌리고 서버에 보내지 않습니다. 맞았는지는 제출하셔야 알 수 있습니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.