강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của jihyepark82444948
jihyepark82444948

câu hỏi đã được viết

[Một trăm từ đáng giá một ngàn từ] SQL nâng cao để phân tích dữ liệu

Giải bài tập LeetCode về truy vấn con (Subquery)

안녕하세요 리트코드 184번 문제 관련하여 질문드립니다.(알리아스 관련)

Viết

·

273

1

안녕하세요. 리트코드 184번 문제 풀이를 듣기 전 혼자 풀이 할 때는
WHERE 절 다중 컬럼 서브쿼리를 활용하여 문제를 풀었는데요.
 
서브쿼리 사용 전 JOIN 작성 시 테이블 마다 알리아스를 주고,
아래와 같이 쿼리를 짰는데 에러가 나더라구요.
(처음에는 WHERE 절에도 알리아스를 써서 'WHERE절 알리아스 사용 불가능' 때문에 에러뜨나 하다가,
SELECT 절 알리아스까지 모두 바꿔주니 제출이 되던데 혹시 이 쿼리에 문제점이 있을 까요?)
 
아래는 알리아스 모두 제거 후 제출 성공 뜬 쿼리입니다.
 
추가로 이전에 어떤 분이 질문 남겨주셨을 때, WHERE절 다중행 서브쿼리로 푸셔서 제출이 안되셨다고 하셨는데,
저는 다중컬럼 서브퀴리로 풀어서 제출이 된건가요? 해당 쿼리로 풀어도 문제는 없는게 맞는지 궁금합니다.
sql

Câu trả lời 1

0

sdatarian님의 프로필 이미지
sdatarian
Người chia sẻ kiến thức

안녕하세요, 답변 드립니다 :)

1. 알리아스 관련

적어주신 첫번째 쿼리에서 Employee 테이블에 알리아스를 E 라고 적용하지 않은채로 SELECT 절에 사용하여 오류가 발생한 것으로 보입니다. FROM Employee AS E 와 같이 적용하신 후, 첫번째 쿼리와 동일하게 SELECT 절을 적어주시면 오류 없이 동작합니다.

2. 다중컬럼 서브쿼리 관련

https://www.inflearn.com/questions/43204
아마 이 질문과 관련된 내용을 질문 주신 것 같은데요, WHERE Salary IN (SELECT MAX(Salary) FROM  Employee GROUP BY DepartmentId) 와 같이 작성하면, 출력된 MAX(Salary)가 어떤 부서의 값인지 모르기 때문에 오류가 발생합니다. 따라서 DepartmentID도 함께 매칭될 수 있도록 풀이하신 것처럼 다중컬럼 서브쿼리를 이용해야 합니다.

Hình ảnh hồ sơ của jihyepark82444948
jihyepark82444948

câu hỏi đã được viết

Đặt câu hỏi