DATA PROGRAMMING/SQL(18)
-
SQL - SQL로 PIVOT 테이블 만들기
피벗은 원시 데이터의 테이블을 통해 통계 요약 테이블을 만드는 방법이다. Oracle에서는 PIVOT() 함수를 통해서 쉽게 통계요약 테이블을 만들수 있지만 표준 SQL의 기능만으로도 충분히 만들수 있다. 문제 코드 -- 코드를 입력하세요 SELECT o.city, COALESCE(SUM(CASE MONTH(p.paymentDate) WHEN 1 THEN 1 END), 0) '1월', COALESCE(SUM(CASE MONTH(p.paymentDate) WHEN 2 THEN 1 END), 0) '2월', COALESCE(SUM(CASE MONTH(p.paymentDate) WHEN 3 THEN 1 END), 0) '3월', COALESCE(SUM(CASE MONTH(p.paymentDate) WHEN 4..
2023.08.14 -
SQL - CTE를 이용해 Date Series 만들기
문제 코드 -- 코드를 입력하세요 WITH RECURSIVE allDates (date) AS ( SELECT '2004-11-01' UNION ALL SELECT date + INTERVAL 1 DAY FROM allDates WHERE date + INTERVAL 1 DAY
2023.08.12 -
재귀 조인의 사용
문제 내가 작성한 코드 -- 코드를 입력하세요 SELECT orderNo, status FROM s_orders WHERE orderNo = ANY ( SELECT orderNo FROM s_orderDetails WHERE (productCode in ('S10_1678')) AND (productCode in ('S10_4698')) GROUP BY orderNo ) 이 코드의 결과엔 아무 튜플도 포함되지 않았다. 이유는 무엇일까? productCode가 두 개의 값 모두인 주문을 찾으려면, 해당 주문의 상세 내역에서 productCode가 두 개의 값 중 하나씩 포함되는지 확인해야 하지만, 내 코드에서 서브쿼리의 WHERE 절이 제대로 작동하고 있지 않은것이다. 이에 productCode에 두개의 ..
2023.08.12 -
SQL 관계 대수식 작성 연습
학과가 ‘컴퓨터’이고, 학년이 3학년인 학생의 학번과 이름을 검색하세요. 학수번호가 ‘C413’인 과목을 등록하여, 성적 ‘A’를 받은 학생의 이름을 검색하세요. ‘Database’ 과목을 등록한 학생의 이름을 검색하세요. ‘Database’ 과목을 등록하여, 성적 ‘A’를 받은 학생의 이름을 검색하세요. ‘Database’와 ‘화일처리’ 과목을 같이 수강한 학생의 학번을 검색하세요. ‘컴퓨터’ 학과의 3학년 학생들 중에 ‘Database’와 ‘화일처리’을 같이 수강한 학생의 학번을 검색하세요. 학수번호가 ‘C413’인 과목을 등록하지 않은 학생의 이름을 검색하세요. ‘Database’ 과목의 기말시험 평균은? 각 학생의 학번과 기말시험 평균을 구하세요. 단 휴학생(수강 등록을 하지 않은 학생)도 포함하..
2023.07.11 -
[SQL] TIL 2- SQL 기본적인 함수들 익히기
1. CONCAT(), CONCAT_WS() 여러모로 쓸모가 많을것 같은 함수였다. CONCAT()과 CONCAT_WS()은 간단하게 말하면 칼럼의 내용을 이어주는 함수라고 할 수 있다. 차이점은 CONCAT_WS()는 내용을 이어줄 매개체를 직접 설정해 줄수 있다는 것이다. 예를 들면 CONCAT_WS('-', '안녕', '하세요') 라고 입력시 안녕-하세요로 출력된다. SELECT EmployeeID AS '고객아이디', CONCAT_WS('-', LastName, FirstName) as '고객이름', Notes as '이력' FROM Employees WHERE Notes Like '%econo%' Employees 테이블에서 LastName 컬럼과 FirstName 컬럼의 내용들을 '-'로 묶어..
2023.03.09 -
[SQL] TIL 1 - SQL 기본 다루기
SQL은 데이터베이스를 다루기 위해서 필수적인 도구이다. 오늘은 SQL의 전반적인 기능을 훑어보려고 한다. SQL 기본 다루기 1. SELECT의 전반적인 기능 다루기 SELECT CustomerID AS 'ID', CustomerName AS '고객이름', City AS '도시', Country AS '나라' WHERE City = 'London' or WHERE Country = 'Mexico' ORDER BY CustomerName LIMIT 5 FROM Customers; Customers 테이블에서 City가 London이거나 Country가 Mexico인 사람들을 CustomerName을 기준으로 5개 출력하기위한 코드를 작성하였지만, 에러가 났다. SELECT CustomerID AS 'ID..
2023.01.30