[SQL] 실습 + 빅데이터 분석 방법들
·
Development Study/Backend
WINDOWS 함수를 다루는 방법을 다루고 있다 TABLE 정보 불러보기 select * from cust_ord limit 100; 고객 별 가장 많이 구매한 상품만 불러오고 싶다면?? 고객별로 잘라서 구매한 금액별로 랭크를 매겨서 그 중 1등만 뽑아내서 가져오면 된다 - WINDOW > LAG 함수 - lag(orddate)? orddate의 다음 날짜를 가져오라 LAG에서 partition by == group by select custid, orddate, LAG(orddate) over (partition by custid order by prod_amt) as next FROM cust_ord; 구매 주기는 구매일의 차를 계산하여 구매할 수 있다 고객의 방문 주기 구해보기 - WINDOW > ..
[SQL] 실습 정리
·
Development Study/Backend
지난시간 복습 0.복습.1. Orders table의 orderdate를 월, 일 정보만 들고오기 select substring(date_format(orderdate, "%Y%m%d"), 5, 4) from Orders 0.복습.2. 고객 별 월별 구매금액 select custid, substring(date_format(orderdate, "%Y%m%d"), 5, 2), sum(saleprice) from Orders group by custid, substring(date_format(orderdate, "%Y%m%d"), 5, 2) 0.복습.3. 만들어 둔 뷰 삭제하기 drop VIEW V_Orders; 이번 범위는 ~view까지..! 이번시간 실습 - csv파일 toad에 불러와 가공해보기 약 ..
[SQL] 실습 정리 (View)
·
Development Study/Backend
SUBSTR 연습 많이 할 것 신입사원들이 가장 많이 혼동하는 것이 문자를 다루는 함수들에 문자가 아닌 다른 형태를 쓰는 경우가 많다고 한다 특히 분석과 쪽에서는 시계열 자료들을 많이 보려고 하기 때문에 타입을 잘 확인하고 적용해야 한다 EX) 연도별, 일별, 월별 판매금액 등 DATEDIFF(DATE1, DATE2) = DATE2와 DATE1의 날짜 차이를 계산 해준다) SYSDATE = 시스템상의 날짜를 반환한다 1.REPLACE.1 휴대폰 첫 자리가 000인 경우 010으로 바꿔서 출력하시오 SELECT REPLACE(phone,"000","010") FROM Customer 1.DATE_FORMAT.2 ORDERDATE를 STRING TYPE의 yyyymmdd로 바꿔보기 SELECT DATE_FO..
[SQL] 실습 정리(SUB_QUARY, UPDATE)
·
Development Study/Backend
지난주차 복습 문제 SUB QUARY 주로 SUBQUARY를 이용할 때 두 개의 SQL문을 따로 만들어 보고 그 후에 합치면 조금 더 수월하게 작성할 수 있다 0.SUB_QUARY.1 가격이 가장 비싼 도서의 도서 아이디, 도서명을 출력 SELECT bookid, bookname FROM Book WHERE price = (SELECT MAX(price) FROM Book); 0.SUB_QUARY.2 도서를 구매한 내역이 있는 고객의 고객 아이디, 고객명을 출력 SELECT custid, name FROM Customer WHERE custid IN (SELECT custid FROM Orders); 우선, 실습을 진행하기 전에 기존의 테이블을 바꿔주기 위한 SQL문을 입력한다 더보기 drop table..
[SQL] 실습 정리(+JOIN, OUTER_JOIN, CASE, SUBQUARY)
·
Development Study/Backend
지난시간 JOIN문 예제 0.JOIN.1. 고객ID, 고객명, 도서ID, 도서판매금액, 판매일을 출력해 보시오 SELECT a.custid, a.name, b.bookid, b.saleprice, b.orderdate FROM Customer a, Orders b WHERE a.custid = b.custid; 0.JOIN.2. 고객ID, 고객명, 도서ID, 도서명, 판매금액, 판매일을 출력해 보시오 SELECT a.custid, a.name, b.bookid, b.bookname, c.saleprice, c.orderdate FROM Customer a, Book b, Orders c WHERE a.custid = c.custid AND b.bookid = c.bookid; 0.OUTER_JOIN.3...
[SQL] JOIN문 실습 정리
·
Development Study/Backend
1. 고객과 고객의 주문에 관한 데이터를 모두 보이시오 SELECT * FROM Customer, Orders WHERE Customer.custid = Orders.custid; + 만약 SELECT 뒤에 * 대신 KEY값을 직접 입력해서 특정 데이터를 뽑아내려 할 때 WHERE로 묶어 둔 custid를 쓰고싶다면 묶인 테이블의 둘 중 한 군데를 골라 ex) Customer.custid / Orders.custid 와 같이 써주면 된다 SELECT Customer.custid, name, bookid, saleprice FROM Customer, Orders WHERE Customer.custid = Orders.custid; ++ from 절에서 변수를 선언하듯이 해서 긴 테이블의 이름을 줄여 출력할..