//////
//
Search
👽

인영

1~10번 문제

#1.모든 아티스트의 이름을 조회하세요 SELECT * FROM SQL_Artists #2.K-POP 장르의 Genre_ID를 조회하세요 SELECT * FROM SQL_Genres WHERE Name='K-Pop' #3.앨범 발매 연도가 2020년 이후인 앨범의 제목과 연도를 조회하세요. SELECT Title, Year FROM SQL_Albums WHERE YEAR >= 2020 #4.트랙 길이가 240초 이상인 트랙의 제목과 길이를 조회하세요. SELECT Title, Length FROM SQL_Tracks WHERE Length >= 240 #5.중복을 제거한 장르명을 모두 조회하세요. SELECT DISTINCT Name FROM SQL_Genres g #6.각 장르별로 몇 개의 트랙이 있는지 조회하세요. SELECT sg.Genre_ID, sg.name, COUNT(*) FROM SQL_Genres sg JOIN SQL_Tracks st ON sg.Genre_ID = st.Genre_ID GROUP BY sg.Name #7.각 아티스트가 보유한 앨범 개수를 조회하세요. SELECT sa.Artist_ID, sa.Name, COUNT(Album_ID) FROM SQL_Artists sa JOIN SQL_Albums sa2 ON sa.Artist_ID = sa2.Artist_ID GROUP BY Name #8.2020년 이전에 발매된 앨범의 수를 조회하세요 SELECT COUNT(*) FROM SQL_Albums sa WHERE YEAR <= 2020 #9.트랙 제목에 '1'이 포함된 트랙을 모두 조회하세요. SELECT Title FROM SQL_Tracks st WHERE Title LIKE '%1%' #10.리뷰 평점이 5점인 앨범 리뷰를 모두 조회하세요. SELECT sa.Title,Comment, Ranking FROM SQL_Album_Reviews sar JOIN SQL_Albums sa ON sar.Album_ID = sa.Album_ID WHERE Ranking='5'
JavaScript
복사

11~20번 문제

#11.각 리뷰어가 작성한 리뷰 수를 조회하세요. SELECT sar.Reviewer_ID, COUNT(Review_Date) FROM SQL_Album_Reviews sar GROUP BY Reviewer_ID #12.각 앨범의 평균 평점을 조회하세요. SELECT sa.Title, ROUND(AVG(sar.Ranking),1) FROM SQL_Albums sa JOIN SQL_Album_Reviews sar ON sa.Album_ID = sar.Album_ID GROUP BY 1 #13.각 트랙의 제목과 해당 장르명을 함께 조회하세요. SELECT title, sg.Name FROM SQL_Tracks st JOIN SQL_Genres sg ON st.Genre_ID = sg.Genre_ID #14.각 앨범에 몇 개의 트랙이 있는지 조회하세요. SELECT sa.Album_ID, sa.Title, COUNT(st.Track_Num) AS cnt_track_num FROM SQL_Tracks st JOIN SQL_Albums sa ON st.Album_ID = sa.Album_ID GROUP BY 1 #15.트랙 수가 5개 이상인 앨범을 조회하세요. SELECT sa.Album_ID, sa.Title, COUNT(st.Track_Num) AS cnt_track_num FROM SQL_Tracks st JOIN SQL_Albums sa ON st.Album_ID = sa.Album_ID GROUP BY 1,2 HAVING cnt_track_num >= 5 #16.NULL이 아닌 리뷰 코멘트만 조회하세요. #NULL이 없는데,..? SELECT Comment FROM SQL_Album_Reviews WHERE Comment IS NOT NULL #17.앨범 리뷰에서 평점이 NULL이면 0으로 대체하여 조회하세요. SELECT sar.Reviewer_ID, sar.Album_ID, sa.Title, COALESCE(Ranking, 0) AS Ranking, sar.Comment FROM SQL_Album_Reviews sar LEFT JOIN SQL_Albums sa ON sar.Album_ID = sa.Album_ID #18.앨범 리뷰의 작성일이 올해인 경우만 조회하세요. SELECT Comment, Review_Date FROM SQL_Album_Reviews WHERE Review_Date LIKE '%2025%' #19.리뷰 작성일이 없는 데이터(리뷰 날짜가 NULL)를 조회하세요. <???> <다시 풀어보기> SELECT sar.Reviewer_ID, sr.Reviewer_ID, sar.Album_ID, sa.Title FROM SQL_Album_Reviews sar LEFT JOIN SQL_Albums sa ON sar.Album_ID = sa.Album_ID LEFT JOIN SQL_Reviewers sr ON sar.Reviewer_ID = sr.Reviewer_ID WHERE sar.Review_Date IS NULL SELECT sar.Reviewer_ID, sr.Reviewer_ID, sar.Album_ID, sa.Title FROM SQL_Albums sa LEFT JOIN SQL_Album_Reviews sar ON sar.Album_ID = sa.Album_ID LEFT JOIN SQL_Reviewers sr ON sar.Reviewer_ID = sr.Reviewer_ID WHERE sar.Review_Date IS NULL #20.리뷰가 없는 앨범을 조회하세요. SELECT sa.Album_ID, Title, Comment FROM SQL_Albums sa LEFT JOIN SQL_Album_Reviews sar ON sa.Album_ID = sar.Album_ID WHERE Comment IS NULL
JavaScript
복사

21~30번 문제

#21.리뷰가 가장 많은 앨범을 조회하세요. SELECT sa.title, COUNT(*) AS cnt_review FROM SQL_Albums sa JOIN SQL_Album_Reviews sar ON sa.Album_ID = sar.Album_ID GROUP BY 1 ORDER BY 2 DESC LIMIT 1 #22.가장 많은 앨범을 가진 아티스트를 조회하세요. SELECT sa2.Artist_ID, sa2.Name, COUNT(sa.Album_ID) AS cnt_album FROM SQL_Albums sa JOIN SQL_Artists sa2 ON sa.Artist_ID = sa2.Artist_ID GROUP BY 1 ORDER BY cnt_album desc LIMIT 1 #23.트랙 평균 길이가 가장 긴 장르를 조회하세요. SELECT sg.Name, ROUND(AVG(Length)) AS avg_length FROM SQL_Genres sg JOIN SQL_Tracks st ON sg.Genre_ID = st.Genre_ID GROUP BY 1 ORDER BY avg_length DESC LIMIT 1 #24.앨범 평균 평점이 4.5 이상인 앨범을 조회하세요. SELECT sa.title, AVG(Ranking) as avg_ranking FROM SQL_Album_Reviews sar JOIN SQL_Albums sa ON sar.Album_ID = sa.Album_ID GROUP BY 1 HAVING avg_ranking >= '4.5' #25.각 아티스트의 앨범 평균 발매연도를 조회하세요. SELECT sa2.Name, ROUND(AVG(sa.year)) AS '평균 발매연도' FROM SQL_Albums sa JOIN SQL_Artists sa2 ON sa.Artist_ID = sa2.Artist_ID GROUP BY 1 #26.각 장르별 트랙 총 길이를 조회하세요. SELECT sg.Name, SUM(st.Length) AS total_length FROM SQL_Genres sg JOIN SQL_Tracks st ON sg.Genre_ID = st.Genre_ID GROUP BY 1 #27.각 앨범의 평균 트랙 길이를 조회하세요. SELECT sa.Title, ROUND(AVG(st.Length)) FROM SQL_Albums sa JOIN SQL_Tracks st ON sa.Album_ID = st.Album_ID GROUP BY 1 #28.리뷰 작성자가 등록한 앨범별 평점 합계를 조회하세요. SELECT sar.Reviewer_ID,sa.Title, SUM(COALESCE(sar.Ranking, 0)) AS total_ranking FROM SQL_Album_Reviews sar JOIN SQL_Albums sa ON sar.Album_ID = sa.Album_ID GROUP BY 1,2 #29.2020~2025년 사이 작성된 리뷰 코멘트 수가 2개 이상인 앨범을 조회하세요. SELECT sa.title, sar.Comment, COUNT(*) AS cnt FROM SQL_Albums sa JOIN SQL_Album_Reviews sar ON sa.Album_ID = sar.Album_ID WHERE LEFT(sar.Review_Date, 4) BETWEEN '2020' AND '2025' GROUP BY 1 HAVING cnt >= 2 #30.각 아티스트의 앨범 수와 총 트랙 수를 함께 조회하세요. SELECT sa.Name, COUNT(DISTINCT sa2.Title) AS '앨범 수', COUNT(st.Track_Num) AS '트랙 수' FROM SQL_Artists sa JOIN SQL_Albums sa2 ON sa.Artist_ID = sa2.Artist_ID JOIN SQL_Tracks st ON sa2.Album_ID = st.Album_ID GROUP BY 1
JavaScript
복사