내일배움캠프/SQL

[SQL]사전캠프과제_4,5

dydatablog 2024. 11. 8. 16:36

아래와 같은 sparta_students(학생) 테이블이 있습니다.

id name track grade enrollment_year
1 르탄이 Node.js A 2023
2 배캠이 Spring B 2022
3 구구이 Unity C 2021
4 이션이 Node.js B 2022

sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해주세요!

SELECT name, track
FROM sparta_students;

 

sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해주세요!

SELECT *
FROM sparta_students
WHERE track != 'Unity';

 

sparta_students 테이블에서 입학년도(enrollment_year)가 2021년인 학생과 2023년인 학생을 선택하는 쿼리를 작성해주세요!

SELECT *
FROM sparta_students
WHERE enrollment_year IN(2021,2023);
/*IN은 여러 개의 값을 한 번에 비교할 수 있게 해주는 연산자이다.

 

sparta_students 테이블에서 Node.js 트랙 소속이고 학점이 ‘A’인 학생의 입학년도를 선택하는 쿼리를 작성해주세요!

 

SELECT enrollment_year
FROM sparta_students
WHERE track = 'Node,js'
AND grade = 'A';

 


 

id name start_date end_date aws_cost
1 일조 2023-01-01 2023-01-07 30000
2 꿈꾸는이조 2023-03-15 2023-03-22 50000
3 보람삼조 2023-11-20 2023-11-30 80000
4 사조참치 2022-07-01 2022-07-30 75000

team_projects 테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!

SELECT name
FROM team_project
WHERE aws_cost >= 40000;

 

 

team_projects 테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date < ‘2023-01-01’ 조건을 사용하지 말고 쿼리를 작성해주세요!

 

SELECT name
FROM team_projects
WHERE YEAR(start_date) = 2022;
/* PostgreSQL에서는 EXTRACT(YEAR FROM start_date)를 사용할 수 있습니다.
SQL Server에서는 YEAR(start_date)와 동일한 방식으로 사용 가능합니다.

 

team_projects 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!

SELECT name
FROM team_projects
WHERE start_date <= CURRENT_DATE
AND (end_date IS NULL OR end_date >= CURRENT_DATE);
/* MySQL기준

 

 

team_projects 테이블에서 각 프로젝트의 지속 기간을 일 수로 계산하는 쿼리를 작성해주세요!

SELECT name,
	DATEDIFF(end_date, start_date) AS duration_days
FROM team_projects;
/* DATEDIFF(end_date, start_date): end_date와 start_date 사이의 차이를 일수로 계산
 AS duration_days: 계산된 결과에 대해 duration_days라는 별칭을 지정하여 결과를 반환