[프로그래머스] SQL 코딩테스트 연습 03. 우유와 요거트가 담긴 장바구니
·
✏️ Study/MySQL
데이터셋 확인은 이전글 참조 2021.08.09 - [SQL/MySQL] - [프로그래머스] SQL 코딩테스트 연습 01. DB 확인 [프로그래머스] SQL 코딩테스트 연습 01. DB 확인 프로그래머스 사이트에서 SQL 문제를 풀어볼 수 있다. https://programmers.co.kr/learn/challenges?tab=sql_practice_kit 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 프.. ggarden.tistory.com 이번에 풀 문제는 Summer/Winter Coding(2019)의 우유와 요거트가 담긴 장바구니 문제이다. 지난번 문제와 마찬가지로 Level 4에 랭크되어 있지만 구하고자 하는 것이 명확해서 체감난이도는 어렵..
[프로그래머스] SQL 코딩테스트 연습 02. 입양 시각 구하기(2)
·
✏️ Study/MySQL
데이터셋 확인은 이전글 참조 2021.08.09 - [SQL/MySQL] - [프로그래머스] SQL 코딩테스트 연습 01. DB 확인 [프로그래머스] SQL 코딩테스트 연습 01. DB 확인 프로그래머스 사이트에서 SQL 문제를 풀어볼 수 있다. https://programmers.co.kr/learn/challenges?tab=sql_practice_kit 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 프.. ggarden.tistory.com 프로그래머스 SQL 문제들 중에서 어려웠던 문제들을 리뷰 차원에서 다시 한 번 풀어본다. GROUP BY 카테고리의 입양 시각 구하기(2) 문제이다. 모든 문제들은 레벨1~4까지 있는데 다른 문제들과 다르게 레벨..
[프로그래머스] SQL 코딩테스트 연습 01. DB 확인
·
✏️ Study/MySQL
프로그래머스 사이트에서 SQL 문제를 풀어볼 수 있다. https://programmers.co.kr/learn/challenges?tab=sql_practice_kit 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 프로그래머스 사이트는 기업에서 개발자 채용시 코딩테스트를 위탁으로 수행하는 곳이라고 들은 적이 있다. 그래서 실제로 출제되는 코딩테스트일 것 같아 실전감각을 키울 수 있겠다는 생각이 들었다. SQL은 아래 사진처럼 6개 영역의 문제를 풀 수 있다. 문제에서 사용하는 테이블은 2가지이다. 1) ANIMAL_INS 테이블 메타데이터를 보면 그리고 데이터셋을 몇 행만 뽑아서 확인해보면 2)ANIMAL_OUTS 테이블 메타데이터는 아래와 같다. 그리..
[SQL 100제#75-80] ALL, ANY, EXISTS, NOT EXISTS
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 6주차 과제 풀이 (SQL 75~80번 문제) [강의내용] 문제75번) 매출을 가장 많이 올린 dvd 고객 이름은? (subquery 활용) 서브쿼리를 활용하여 매출이 가장 많은 customer_id를 구하고, 메인쿼리에서 고객 이름을 구한다. SELECT c.first_name, c.last_name, t1.sum FROM customer c JOIN ( SELECT p.customer_id, sum(p.amount) FROM payment p GROUP BY p.customer_id ORDER BY sum DESC LIMIT 1 ) AS t1 ON c.customer_id = t1.customer_id; 문제76번) 대..
[SQL 100제#67-74] UNION, UNION ALL, EXCEPT, IN, NOT IN
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 5주차 과제 풀이 (SQL 67~74번 문제) [강의내용] 문제67번) 180분 이상 길이의 영화에 출연하거나, rating이 R인 영화에 출연한 배우에 대해서 배우 ID와 (180분 이상 / R등급 영화)에 대한 Flag컬럼을 알려주세요. - 1) film_actor 테이블과 film 테이블을 이용하세요. - 2) union, unionall, intersect, except 중 상황에 맞게 사용해주세요. - 3) actor_id가 동일한 flag값이 여러개 나오지 않도록 해주세요. WHERE절을 통해 필터링을 쉽게 할 수 있지만 플래그 컬럼을 생성해야하기 때문에 가장 쉬운 방법인 UNION을 쓴다 180분 이상 영화에 ..
[SQL 100제#54-66] SUM, COUNT, ROUND, CASE WHEN, 서브쿼리
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 4주차 과제 풀이 (SQL 54~66번 문제) [강의내용] 문제54번) store별로 staff는 몇명이 있는지 확인해주세요. 집계함수인 COUNT를 쓰면, 그룹별 컬럼의 갯수를 셀 수 있다. 집계함수를 쓸 때 주의할 점은 FROM절 뒤에 GROUP BY절을 명시해서 어떻게 그룹지을지를 설정해주어야 한다. SELECT s.store_id, count(st.staff_id) FROM store s JOIN staff st ON s.store_id = st.store_id GROUP BY s.store_id; store_id별로 staff_id의 갯수를 세어주게 된다. 문제55번) 영화등급(rating) 별로 몇개의 영화를 가..
[SQL 100제#47-53] JOIN, LEFT JOIN, CASE
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 3주차 과제 풀이 (SQL 39~53번 문제) [강의내용] 문제47번) 고객 id별로 고객의 이름 (first_name, last_name), 이메일, 고객의 주소 (address, district), phone, city, country 를 알려주세요. 문제 46번처럼, customer_id 별 주소 이므로 SELECT절에서 맨 앞에 customer_id를 써주는 것을 유의하면 된다. SELECT c.customer_id, c.first_name, c.last_name, c.email, a.address, a.district, a.phone, ci.city, co.country FROM customer c JOIN add..
[SQL 100제#39-46] JOIN, LEFT JOIN
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 3주차 과제 풀이 (SQL 39~53번 문제) [강의내용] 문제39번) 고객의 기본정보인 고객id, 이름, 성, 이메일과 함께 고객의 address, district, postal_code, phone을 함께 보여주세요. 고객id, 이름, 성, 이메일 컬럼은 customer 테이블에 존재한다. 그리고 address를 비롯한 나머지 컬럼들은 address 테이블에 존재한다. 다른 테이블을 한 쿼리에서 사용하기 위해 FROM뒤에 JOIN을 써서 추가할 테이블을 입력해준다. 그리고 ON 뒤에 두 테이블간의 공통 컬럼을 적어준다. SELECT c.customer_id, c.first_name, c.last_name, a.addre..