20220214_SQL 기초 4 (서브 쿼리와 alias)

2022. 2. 17.공부/SQL, R

728x90
JAVA의 중첩 반복문처럼, 쿼리문 또한 중첩해서 작성할 수 있다. 이전에 SELECT 문으로 작성하여 조회했던 자료의 범위 안에서 새롭게 데이터를 탐색하고 싶다면, 새로 작성하는 쿼리문에서는 WHERE 절에 이전에 작성해두었던 SELECT문을 집어넣어 중첩 형태로 작성한다.

 

1. 가입 일자가 2021년 이후인 사람 중 가장 먼저 가입한 사람의 가입일을 조회한다.

SELECT min(reg_date) FROM userTbl WHERE reg_date > '2021-01-01';

 

2. 가입 일자가 2021년 이후인 사람 중 가장 먼저 가입한 사람의 키를 조회한다.

SELECT height FROM userTbl WHERE reg_date = (SELECT min(reg_date) FROM userTbl WHERE reg_date > '2021-01-01');

 

또, SQL에서 SELECT를 해올 때 별칭(alias)을 사용하기도 하는데, 이는 컬럼명 뿐 아니라 서브쿼리에도 적용이 가능하다. alias는 길이가 30자까지 가능하나 짧을수록 더욱 좋으며, AS라는 명령어를 통해 보통 별칭을 지정하지만 생략하는 경우도 있다.

 

SELECT user_id as '회원아이디', gender as '성별', reg_date as '가입일'  FROM userTbl; // 컬럼명에 별칭 붙여 조회
SELECT user_id, avg(amount * price) as '평균구매금액' FROM buyTbl GROUP BY user_id; // 함수에 별칭 붙여 조회

 

아래 코드블럭은 별칭을 사용할 때 생략하는 경우이다.

SELECT 컬럼명 별칭 FROM 테이블명