no image
SQL : Union & Union ALL
UNION UNION 절은 JOIN 절이 두 개의 데이터 셋을 가로로 연결해준것과 달리 아래로 연결되도록 해준다. 따라서, 두 개의 SELECT 문을 작성해서 이어붙일 때 그 사이에 UNION을 쓸 수 있는 것이다. ID 학과 1 경영학과 2 컴퓨터과학과 ID 학과 2 컴퓨터과학과 3 건축학과 4 국어국문학과 첫번째 테이블의 모든 결과를 나열하고 + 그 밑에 두번째 테이블의 모든 결과들이 이어진다. 그런데 distinct values들만 남는다. 즉, 위에서 두번째 테이블인 B에 A와 중복되는 행인 (ID = 2)가 있는데, 이러면 ID = 2인 행은 제외하고 붙여진다. 결과는 다음과 같을 것이다. ID 학과 1 경영학과 2 컴퓨터과학과 3 건축학과 4 국어국문학과 두 개의 SELECT 문 사이에 UNI..
2023.07.20
no image
SQL : Join - LEFT/RIGHT/OUTER JOIN
INNER JOIN 말고 OUTER JOINs에는 LEFT JOIN, RIGHT JOIN, OUTER JOIN이 있다. INNER JOIN은 두 테이블에 모두 있지 않은 정보는 결과로 출력되지 않았다. OUTER JOINs에서는 unmatched된 행들도 결과로 출력될 수 있다. 2. LEFT JOIN INNER JOIN에서처럼 두 개의 TABLE 이 있다고 생각해보자. (1) : 교양 수업을 수강등록한 학생 목록 : 테이블 명 = Students userID 학과 학년 1 경영학과 2 2 응용통계학과 4 3 건축학과 4 4 식품영양학과 3 (2) : 7월 19일 과제제출 및 퀴즈 결과 : 테이블 명 = Class ID 과제제출 퀴즈결과 1 제출 90 3 미제출 80 4 제출 75 이와 같이 INNER ..
2023.07.20
no image
SQL : JOIN - INNER JOIN
JOIN 이 왜 필요할까? 이제까지는 테이블 하나로만 쿼리를 작성했다. 하지만 현실에는 정보들이 여러 개의 테이블들로 나뉘어 있고, 이 여러 개의 테이블들 사이의 관계를 고려하여 연결할 수 있어야 한다. 1. INNER JOIN 다음과 같은 두 개의 TABLE 이 있다고 생각해보자. (1) : 교양 수업을 수강등록한 학생 목록 : 테이블 명 = Students userID 학과 학년 1 경영학과 2 2 응용통계학과 4 3 건축학과 4 4 식품영양학과 3 (2) : 7월 19일 과제제출 및 퀴즈 결과 : 테이블 명 = Class ID 과제제출 퀴즈결과 1 제출 90 3 미제출 80 4 제출 75 여기서 두 table로 SELECT * FROM Students, Class 의 쿼리를 입력하면 연결지을 수 있..
2023.07.19
no image
SQL : CASE로 pivot하기
CASE 절을 이용해서 테이블을 피벗하는 방법에 대하여! - 예제 : 리트코드 1179 - 예제 : 리트코드 1193 LeetCode 1179. Reformat Department Table 문제 이용 Table : Department Column Name Type id int revenue int month varchar 달별 각 부서 (department)의 revenue 값이 기록되어 있는 테이블이다. month의 values are in ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] Write a SQL query to reformat the table such that there is a d..
2023.07.19
no image
OPIc 공부방법 / 문제유형별 접근방법 / 결과 : AL
2023.07.12 - [Skill/OPIc] - OPIc 시험접수 / 문제 유형 정리 / 서베이 OPIc 시험접수 / 문제 유형 정리 / 서베이 [OPIc 시험접수] 외국어말하기평가 OPIc 공식 시험 접수 사이트 https://m.opic.or.kr/opics/servlet/controller.opic.site.main.MainServlet?p_process=move-init-mobile&p_section=2 외국어말하기평가 OPIc 공식 사이트 실생활 커뮤 greenjade.tistory.com OPIc을 공부하기 위해서 (1) 오픽노잼 투 책 (2) 오픽노잼 유튜브 컨텐츠 를 활용하였다. 기간은 대략 열흘정도로 잡아놓고 시험을 먼저 신청했다. 시험을 신청해야 공부할 것 같아서... 목표는 AL! ..
2023.07.18
no image
SQL : Case
CASE CASE 절은 IF절과 같은 역할을 한다. 예시부터 들어보면, CASE 절의 구성은 다음과 같다. CASE WHEN (조건) THEN (조건=T일 때 결과) ELSE (조건=F일 때 결과) END - 항상 END 로 끝나야 함 - ELSE 는 optional임 (WHEN/THEN에서 조건이 다 커버 안되면 넣어야겠지) WHEN 뒤 조건절에 여러 조건을 AND / OR 을 같이 이용해서 구성해도 된다. 예를 들어, SELECT player_name, CASE WHEN year = 'FR' AND position = 'WR' THEN 'fr_wr' ELSE NULL END AS (어쩌구저쩌구) FROM (테이블명) # Using CASE with aggregate functions 특정 조건을 만족..
2023.07.14
no image
SQL : Having
Having group by를 이용해서 aggregate 을 해보았다. 그런데 만약 월별로 aggregate을 했을 때, 모든 월에 대하여 aggregate 결과를 보고 싶은게 아니라 해당 결과에 대해서 특정 조건을 만족하는 월들을 찾고 싶다고 해보자. SELECT ~ FROM 과 함께 썼던 WHERE 절은 여기서 이용할 수 없다. 왜냐하면 GROUP BY 절 전에 오는 WHERE 절로 이미 집계(Aggregated)가 된 값들을 기준으로 filter할 수 없기 때문이다. 그래서 이 때 이용하는게 HAVING 절이다. 예 ) 년도 + 월 조합 별 'high' 컬럼의 최댓값을 알고 싶은데, 그 최댓값이 400이 넘어야 한다는 조건을 붙여보자. # 쿼리문 순서 정리 (Query Clause Order) 1...
2023.07.14
no image
OPIc 시험접수 / 문제 유형 정리 / 서베이
[OPIc 시험접수] 외국어말하기평가 OPIc 공식 시험 접수 사이트 https://m.opic.or.kr/opics/servlet/controller.opic.site.main.MainServlet?p_process=move-init-mobile&p_section=2 외국어말하기평가 OPIc 공식 사이트 실생활 커뮤니케이션 외국어 역량을 평가하는 오픽 m.opic.or.kr 대학생은 1년에 한 번 응시권에 할인을 받을 수 있다. https://univ.opic.or.kr/opicb2b/showMainView OPIc univ.opic.or.kr 후자의 방법을 이용하면 원래 78,100원에서 69,000으로 할인받아 응시할 수 있다. (단, 1년에 한 번만 적용 가능하며 재학증명서 꼭 꼭 들고 가야 한다..
2023.07.12
no image
SQL : Distinct
DISTINCT 특정 column에 대해 중복을 제거하는 sql문이다. Apple stock prices dataset의 "month" column에서 unique values를 선택하기 위한 쿼리는 아래와 같다. (result) month 1 2 ... 만약 column 두 개를 select 한다면 두 열의 쌍으로 unique한 pair들을 모두 출력할 것이다. (result) year month 2014 2 2014 5 2015 1 ... ... + 위에 result는 모두 month 또는 year에 대해 오름차순이 되도록 setting 해놨는데, 만약 결과가 원하는 순서로 정렬되어 있지 않다면 마지막 줄에 order by (column 명) (desc) 를 덧붙여 주면 된다. # Using DIST..
2023.07.10