[SQL 100제#1-10] SELECT, WHERE, MOD, CHAR_LENGTH
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 1주차 과제 풀이 (SQL 1~20번 문제) [강의내용] 기본적인 SQL 실습문제들을 풀이한다. dvdrental 데이터셋에 친숙해지기 위한 난이도가 낮은 문제들이 많다.(SQL 문제들을 풀면서 느낀 점은 데이터셋을 면밀히 파악하는 것이 무척 중요하다는 점이었다. 어떤 테이블에 어떤 컬럼들이 있는지 모르면 문제를 푸는데 시간이 정말 오래 걸린다..)예전 강의에서 다뤘던 내용도 포함되어 있고, 수업에서 test로 진행된 문제들은 풀이를 업로드하지 않아서 복습차원에서 종합적으로 업로드를 해보려한다. 문제1번) dvd 렌탈 업체의 dvd 대여가 있었던 날짜를 확인해주세요. 대여가 있었던 날짜들을 구하면 된다. 예를 들어 5/24..
[SQL 3-5강] WITH, CASE, LEFT, COALESCE, EXTRACT
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 조건 연산자, WITH문, 트랜잭션 - 05. WITH문의 활용 생각대로 SQL - 9 [강의내용] 조건 연산자, WITH문, 트랜잭션 - 05. WITH문의 활용 WITH문을 활용함으로써 SELECT문의 결과를 임시집합으로 저장해놓고 SQL문에서 마치 테이블처럼 해당 집합을 불러올 수 있다. [실습] WITH문으로 영화시간에 대한 구간을 나눠 영화를 구분해보자 WITH TMP1 AS ( SELECT film_id, title, CASE WHEN length = 30 AND length = 90 THEN 'LONG' END length FROM film ) SELEC..
[SQL 3-4강 (2)] ROW_NUMBER, RANK, DENSE_RANK, COALESCE, FIRST_VALUE, LAST_VALUE
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 생각대로 SQL - 8 [강의내용] 생각대로 SQL - 8 문제2번) 매출을 가장 많이 올린 dvd 고객 이름은? (analystic funtion 활용) payment 테이블에서 customer_id 기준으로 amount 합계를 계산하고, 그중 1위인 고객의 이름을 구하면 된다. [내 풀이] 우선 customer별 amount 합계를 구한다. SELECT customer_id, sum(amount) FROM payment p GROUP BY customer_id 고객의 이름을 구해야하므로 customer 테이블과 JOIN한다. 또한 순위를 구하기위해 RANK함수를 사용한다. SELECT c.customer_id, c.fi..
[SQL 3-4강 (1)] LAG, LEAD, TO_CHAR, COUNT, RANK, OVER
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 33. 조인과 집계 데이터 - 17. LAG, LEAD 함수 34. 조인과 집계 데이터 - 18. 실습 문제 - 1 35. 조인과 집계 데이터 - 19. 실습 문제 - 2 [강의내용] 33. 조인과 집계 데이터 - 17. LAG, LEAD 함수 해당 집합안에서 특정 컬럼의 이전 행의 값(LAG) 혹은 다음 행의 값(LEAD)을 구한다. [실습1] LAG함수 LAG()는 특정 컬럼의 이전 행(한칸 위의 행)의 값을 찾는다 SELECT A.PRODUCT_NAME, B.GROUP_NAME, A.PRICE, LAG (A.PRICE, 1) OVER (PARTITION BY B.GROUP_NAME ORDER BY A.PRICE) AS..
[SQL 3-3강 (2)] AVG, ROW_NUMBER, RANK, DENSE_RANK, FIRST_VALUE, LAST_VALUE
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 29. 조인과 집계 데이터 - 13. 분석함수란 30. 조인과 집계 데이터 - 14. AVG함수 31. 조인과 집계 데이터 - 15. ROW_NUMBER, RANK, DENSE_RANK 함수 32. 조인과 집계 데이터 - 16. FIRST_VALUE, LAST_VALUE 함수 [강의내용] 29. 조인과 집계 데이터 - 13. 분석함수란 [분석함수는?] 특정 집합내에서 결과 건수의 변화없이 합계 및 카운트 등을 계산할 수 있는 함수이다. 집계함수는 집계 결과만을 출력한다. COUNT()와 OVER()를 결합하면 분석함수로써 집계의 결과 및 테이블 내용을 함께 출력할 수 있다. 집계함수는 GROUP BY를 동반하는 특성이 있고..
[SQL 3-3강 (1)] GROUP BY, GROUPING SET, ROLLUP, CUBE
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 생각대로 SQL - 7 [강의내용] 생각대로 SQL - 7 문제3번) 국가(country)별 도시(city)별 매출액, 국가(country)매출액 소계 그리고 전체 매출액을 구하세요. (grouping set) 먼저 SELECT절에 어떤 컬럼을 써야할지 생각하면 문제를 풀기 쉽다. 첫번째로 와야하는 컬럼은 country, 두번째는 city, 세번째는 sum(amount)가 될 것같다. SELECT country, city, sum(amount) FROM payment p JOIN customer c ON p.customer_id = c.customer_id JOIN address a ON c.address_id = a.ad..
[SQL 3-2강 (2)] GROUP BY, GROUPING SET, ROLLUP, CUBE
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 26. 조인과 집계 데이터 - 10. Grouping Set절 27. 조인과 집계 데이터 - 11. Roll up절 28. 조인과 집계 데이터 - 12. Cube절 [강의내용] 26. 조인과 집계 데이터 - 10. Grouping Set절 GROUPING SET 절을 사용하여 여러 개의 UNION ALL을 이용한 SQL과 같은 결과를 만들 수 있다. 먼저 그룹함수 실습을 위한 샘플데이터를 준비한다. [샘플데이터 확인] [실습1] 먼저 brand별, segment별 GROUP BY를 걸어본다. SELECT BRAND, SEGMENT, SUM(QUANTITY) FROM SALES GROUP BY BRAND, SEGMENT; +..
[SQL 3-2강 (1)] 서브쿼리, EXISTS, ANY, SELECT 1, NOT IN
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 생각대로 SQL - 6 [강의내용] 문제1번) 매출을 가장 많이 올린 dvd 고객 이름은? (subquery 활용) customer_id별 sum(amount)를 구하고 이를 customer 테이블과 연결해 이름을 구해주면 된다. [내 답안 (인라인 뷰)] SELECT c.customer_id, c.first_name, c.last_name FROM customer c, ( SELECT customer_id, sum(amount) FROM payment p GROUP BY customer_id ORDER BY sum DESC LIMIT 1) AS t1 WHERE t1.customer_id = c.customer_id; 이 ..