Tags
- M:N
- outer join
- ORM
- regexp
- DB
- Vue
- 그리디
- 백트래킹
- distinct
- 완전검색
- Tree
- 이진트리
- 쟝고
- 큐
- 스택
- Queue
- drf
- Article & User
- create
- Django
- delete
- 트리
- 뷰
- SQL
- count
- stack
- update
- 통계학
- N:1
- migrations
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
Primary Department for Each Employee _ Easy. LeetCode * 본문
Solution
SELECT employee_id, department_id
FROM Employee
WHERE primary_flag = 'Y'
OR employee_id IN (SELECT employee_id
FROM Employee
GROUP BY employee_id
HAVING COUNT(department_id) = 1);
1차 시도
처음에는 예시만 보고 'primary_flag'가 'Y'이거나 employee_id = department_id인 데이터를 추출하려고 했으나 오답이었고 후자가 항상 맞지는 않다는 것을 알았다.
2차 시도
SELECT employee_id, department_id
FROM Employee
WHERE primary_flag = 'Y'
OR (SELECT employee_id
FROM Employee
GROUP BY employee_id
HAVING COUNT(department_id) = 1);
WHERE 문에서 'primary_flag'가 'Y'이거나 employee_id에 대해 GROUP BY를 했을 때 department_id의 개수가 1개인 데이터 행을 추출했다. 로직은 맞았으나 Operand should contain 1 column(s) 이 오류가 뜨게 된다. 이 오류는 서브쿼리가 반환하는 열의 개수가 1개여야 하는데, 그보다 많은 열을 반환했을 때 발생한다. 예를 들어 IN 절에서 잘못된 서브쿼리를 사용하거나, 비교 연산자에서 잘못된 서브쿼리를 사용하면 발생한다. 나 같은 경우에는 후자였다. IN을 사용해야 하는지 몰랐기 때문에 발생했고 IN을 포함하여 문제를 해결했다.
'SQL > 문제풀이' 카테고리의 다른 글
Triangle Judgement _ Easy. LeetCode (0) | 2024.10.28 |
---|---|
Revising Aggregations - Averages _ Easy. HackerRank (0) | 2024.10.27 |
Revising Aggregations - The Sum Function _ Easy. HackerRank (0) | 2024.10.25 |
The Number of Employees Which Report to Each Employee _ Easy. LeetCode * (0) | 2024.10.24 |
Revising Aggregations - The Count Function _ Easy. HackerRank (0) | 2024.10.23 |