[SQL 100제#30-38] OR, IN, IS NULL, IS NOT NULL
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 2주차 과제 풀이 (SQL 21~38번 문제) [강의내용] 문제30번) customer 테이블을 이용하여 이름이 Maria, Lisa, Mike에 해당하는 고객의 id, 이름, 성을 확인해주세요. 이름이 3개 중 하나라도 해당되는 고객들의 정보를 출력해야 한다. WHERE ~ IN (문자열 집합)을 사용하면 된다. SELECT customer_id, first_name, last_name FROM customer c WHERE first_name IN ('Maria', 'Lisa', 'Mike'); 문제31번) film 테이블을 이용하여, film의 길이가 100~120 에 해당하거나 rental 대여기간이 3~5일에 해당..
[SQL 100제#21-29] LIKE, BETWEEN, DATE
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 2주차 과제 풀이 (SQL 21~38번 문제) [강의내용] 문제21번) film 테이블을 활용하여, film 테이블의 100개의 row만 확인해보세요. LIMIT 절을 입력하면 행 수를 설정할 수 있다. (참고로 Oracle에서는 LIMIT가 지원되지 않기 때문에 대신 ROWNUM 절을 사용한다) SELECT * FROM film f LIMIT 100; 100개의 행만 출력되는 것을 확인할 수 있다. (쿼리 결과 생략) 문제22번) actor의 성(last_name)이 Jo로 시작하는 사람의 id 값이 가장 낮은 사람 한사람에 대하여, 사람의 id 값과 이름, 성을 알려주세요. 문자열 타입 데이터를 추출하는 조건을 부여하기..
[SQL 100제#11-20] SELECT, WHERE, COUNT, AND, OR, UPPER
·
✏️ Study/PostgreSQL
[강의명] 패스트캠퍼스 SQL 100제 + 자격증 완성 온라인 완주반 [수강목록] 1주차 과제 풀이 (SQL 1~20번 문제) [강의내용] 문제11번) 영화배우의 이름 (이름+' '+성) 에 대해서, 대문자로 이름을 보여주세요. 단 고객의 이름이 동일한 사람이 있다면, 중복 제거하고 알려주세요. 문자열을 연결하기 위해 지난번에 다루었던 || 기호를 사용한다. 그리고 문자열을 대문자로 바꾸기 위해 UPPER 함수를 사용한다. (소문자로 바꾸는 함수는 LOWER() 이다) SELECT DISTINCT upper(first_name ||' '|| last_name) AS fullname FROM actor; 대문자로 잘 변경된 것을 볼 수 있다. 문제12번) 고객 중에서, active 상태가 0인 즉 현재 사..
[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를 동반하는 특성이 있고..