[LeetCode] Sales Person

아르당·약 17시간 전

LeetCode

목록 보기
134/134
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

Table: SalesPerson

Column NameType
sales_idint
namevarchar
salaryint
commission_rateint
hire_datedate

sales_id는 이 테이블의 고유 키이다.
이 테이블의 각 행은 영업사원의 이름과 ID, 급여, 수수료율 및 입사일을 나타낸다.

Table: Company

Column NameType
com_idint
namevarchar
cityvarchar

com_id는 이 테이블의 고유 키이다.
이 테이블의 각 행은 회사 이름과 회사 ID, 회사가 위치한 도시를 나타낸다.

Table: Orders

Column NameType
order_idint
order_datedate
com_idint
sales_idint
amountint

order_id는 이 테이블의 고유 키이다.
com_id는 Company 테이블의 com_id를 참조하는 외래 키이다.
sales_id는 SalesPerson 테이블의 sales_id를 참조하는 외래 키이다.
이 표의 각 행에는 하나의 주문에 대한 정보가 포함되어 있다. 회사 ID, 영업 담당자 ID, 주문 날짜, 지불 금액이 포함된다.

회사 이름이 "RED"인 회사와 관련된 주문이 없는 모든 영업 사원의 이름을 찾는 솔루션을 작성해라.

결과 테이블은 순서와 상관없이 반환해라.

Example

Input:
SalesPerson table:

sales_idnamesalarycommission_ratehire_date
1John10000064/1/2006
2Amy1200055/1/2010
3Mark650001212/25/2008
4Pam25000251/1/2005
5Alex5000102/3/2007

Company table:

com_idnamecity
1REDBoston
2ORANGENew York
3YELLOWBoston
4GREENAustin

Orders table:

order_idorder_datecom_idsales_idamount
11/1/20143410000
22/1/2014455000
33/1/20141150000
44/1/20141425000

Output:

name
Amy
Mark
Alex

Explanation:
Orders table에 주문 3과 4에 따르면 영업 사원 John과 Pam만이 RED 회사에 판매 실적이 있다는 것을 쉽게 알 수 있으므로 나머지 모든 영업 사원의 이름은 SalesPerson 테이블에 보고된다.

Solved

-- Write your PostgreSQL query statement below
select s.name
from SalesPerson s
where s.name not in
(
    select A.name
    from SalesPerson A
    join Orders B on A.sales_id = B.sales_id
    join Company C on B.com_id = C.com_id
    where C.name = 'RED'
)
profile
내 마음대로 코드 작성하는 세상

0개의 댓글