[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; 이 ..
[SQL 3-1강 (2)] 서브쿼리, OVER, EXISTS, SELECT 1
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 44. 집합 연산자와 서브쿼리 - 09. 실습문제 - 1 45. 집합 연산자와 서브쿼리 - 10. 실습문제 - 2 [강의내용] 44. 집합 연산자와 서브쿼리 - 09. 실습문제 - 1 아래의 SQL문은 film 테이블을 2번이나 스캔하고 있다. film 테이블을 한번만 스캔하여 동일한 결과 집합을 구하는 SQL을 작성하라 SELECT FILM_ID, TITLE, RENTAL_RATE FROM FILM WHERE RENTAL_RATE > ( SELECT AVG (RENTAL_RATE) FROM FILM ); [풀이] AVG값을 SELECT절에서 바로 출력되도록 해야한다. OVER()를 사용하면 된다. OVER()를 사용하면 ..
[SQL 3-1강 (1)] 서브쿼리, ANY, ALL, EXISTS, SELECT 1
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 40. 집합 연산자와 서브쿼리 - 05. 서브쿼리란 41. 집합 연산자와 서브쿼리 - 06. ANY연산자 42. 집합 연산자와 서브쿼리 - 07. ALL연산자 43. 집합 연산자와 서브쿼리 - 08. EXISTS연산자 [강의내용] 40. 집합 연산자와 서브쿼리 - 05. 서브쿼리란 서브쿼리는 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다. [특징] 서브쿼리를 괄호로 감싸서 사용한다 서브쿼리는 메인쿼리의 컬럼을 자유롭게 사용할 수 있다 (메인쿼리는 불가) 서브쿼리에서는 ORDER BY를 사용하지 못한다. ORDER BY절은 SELECT에서 오직 1개만 올 수 있기 때문에 ORDER BY절은 메인쿼리의 마지막 ..