[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절은 메인쿼리의 마지막 ..
[SQLD] 데이터 모델링의 이해 (1)
·
✏️ Study/📀 데이터베이스
[목차] 1과목 데이터 모델링의 이해는 2개의 장과 각각의 절로 이루어져 있다. 1장은 1~3절 (1), 4~5절 (2)로 분할했다. 1장 데이터 모델링의 이해 1절 데이터모델의 이해 2절 엔터티 3절 속성 [내용] 1절 데이터모델의 이해 1. 모델링의 특징 1) 추상화 2) 단순화 3) 명확화 * 모델링의 정의 : 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법 2. 모델링의 3가지 관점 1) 데이터 관점(What, Data) : 데이터 중심 모델링 2) 프로세스 관점(How, Process) : 업무 중심. 업무가 실제 하고 있는 일은 무엇인지, 무엇을 해야 하는지를 모델링 3) 상관 관점(Data vs Process) : 업무 처리에 따라 데이터는 어떻게 영향을 받고..
[SQL 2-5강 (2)] UNION, UNION ALL, INTERSECT, EXCEPT
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 생각대로 SQL - 5 [강의내용] 생각대로 SQL - 5 문제1번) 영화배우가, 영화 180분 이상의 길이의 영화에 출연하거나, 영화의 rating이 R인 등급에 해당하는 영화에 출연한 영화 배우에 대해서, 영화배우 ID와 (180분이상 / R등급영화)에 대한 Flag 컬럼을 알려주세요. - 1) film_actor 테이블와 film 테이블을 이용하세요. - 2) union, unionall, intersect, except 중 상황에 맞게 사용해주세요. - 3) actor_id가 동일한 flag 값이 여러개 나오지 않도록 해주세요. 구해야 할 컬럼이 딱 2개이다(actor_id, flag) 다만, flag의 값은 두 종..
[SQL 2-5강 (1)] INTERSECT, EXCEPT
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 38. 집합 연산자와 서브커리 - 03. INTERSECT 연산 39. 집합 연산자와 서브커리 - 04. EXCEPT 연산 [강의내용] 38. 집합 연산자와 서브커리 - 03. INTERSECT 연산 INTERSECT 연산자는 2개 이상의 SELECT 문들의 결과 집합을 하나의 결과 집합으로 결합한다. 교집합을 만들어준다. INNER JOIN과 똑같기 때문에 실무에서 굳이 쓰지 않는다. 약간의 차이점은 UNION 류와 마찬가지로 2개의 SELECT문 간 컬럼의 갯수가 동일해야 하고, 데이터 타입이 동일해야 한다. 또한 NATURAL JOIN과 비슷하게 ON 뒤에 조건을 적어주지 않아도 INNER JOIN의 효과를 낼 수있다..