본문 바로가기

전체 글47

Q. 국가별 재구매 고객 구하기 재구매 기준 : 바로 다음년도 구매만 인정, 아닐 시 NULL 매칭 필요 데이터 : 구매년도 ➜ orders 테이블의 orderDate 데이터 구매자 ➜ orders 테이블의 customerNumber 데이터 국가정보 ➜ customers 테이블의 country 데이터 조회방법 1. 이전년도, 다음년도 각각의 데이터를 추출하기 위해 같은 테이블을 join 해준다. 해석 orders table 2개를 호출한다. A 이전년도, B 다음년도 join 조건에 재구매 고객을 추려내기 위해 조건을 추가한다. 조건 ➜ 이전년도 = 다음년도 - 1 ➜ substr(A.orderDate,1,4) = substr(B.orderDate,1,4) - 1 년도만 추출하기 위해 substr() 사용 ! 필요한 데이터를 추출한다... 2023. 11. 16.
Java Spring 기초 라이브러리 Gradle : 의존관계가 있는 라이브러리를 모두 다운해준다. 스프링부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat : 톰캣 (웹서버) spring-webmvc : 스프링 웹 MVC srping-boot-starter-thymeleaf : 타임리프 템플릿 엔진 (View) html 을 만들어주는 엔진 spring-boot-starter (공통) spring-boot (스프링부트) spring-boot-starter-logging (로깅) spring-core (스프링코어) 테스트 라이브러리 spring-boot-starter-test junit : 테스트 프레임워크 mockito : 목 라이브러리 assertj : 테스트 코드를 좀 더.. 2023. 11. 15.
Q. 국가별, 도시별 매출액 조회 필요 데이터 : 국가 ➜ customers 테이블의 country 데이터 도시 ➜ customers 테이블의 city 데이터 매출액 ➜ OrdersDetails 테이블에 PriceEach*QuantityOrdered 데이터 조회방법 1. 필요한 데이터들이 들어있는 테이블 Customers 와 Orderdetails 를 join 해준다. 해석 customers 테이블과 orderdetails 테이블은 접점이 없기 때문에 join을 할 수 없다. 그렇기에 orders 테이블을 껴서 join 을 해주어야 한다. custoemrs 는 A, orders 는 B, orderdetails 는 C 테이블이라 칭하고 left join 해준다. 2. 필요한 데이터 조회 해석 (1) 번의 join 해준 데이터들 중 필요한 .. 2023. 11. 15.
네트워크 경로제어 & 흐름제어 & 혼합제어 & 교착상태 방지 2023. 11. 14.
등수 함수 RANK, DENSE_RANK, ROW_NUMBER RANK() : 중복순위가 가능하며, 동점 다음의 등수는 동점수만큼 더해진 후 출력되게 된다. 형식) RANK() OVER(ORDER BY 정렬대상) DENSE_RANK() : 중복순위가 가능하며, 동점 다음의 등수는 바로 다음 등수로 출력되게 된다. 형식) DENSE_RANK() OVER(ORDER BY 정렬대상) ROW_NUMBER() : 중복순위가 불가능 하며, 동점시 먼저 등장한 것이 앞 등수가 되게 된다. 형식) ROW_NUMBER() OVER(ORDER BY 정렬대상) PARTITION : 컬럼별로 묶어서 등수를 매기고 싶을 때 사용한다. 형식) RANK() OVER(PARTITION BY 컬럼명 ORDER BY 정렬대상) DESC : 내림차순 ASC : 오름차순 (기본값) 이기 때문에 정렬방.. 2023. 11. 7.
Q. 년도별 고객 1인의 평균 구매액을 조회해보자 ! 필요한 데이터 : 연도정보 ➜ Orders 테이블에 OrderDate 데이터 고객 수 ➜ Orders 테이블에 CustomerNumber 데이터를 중복제거 (distinct) 와 집계함수 (count) 를 사용하여 가공 구매액 ➜ OrdersDetails 테이블에 PriceEach*QuantityOrdered 데이터 1인당 평균 구매 ➜ 연도별 총매출 / 연도별 총 고객수 조회방법 1. 필요한 데이터들이 들어있는 테이블 Orders 와 OrderDetails 를 join 해준다. 해석 classicmodels.orders 를 A라 칭하고 classicmodels.orderdetails 는 B라고 칭한다. A 테이블과 B 테이블을 left join 해줄 건데 이 때, orderNumber 가 같은 것끼리 .. 2023. 11. 7.