분류 전체보기(53)
-
[SQL] GROUP BY와 집계 함수를 사용할 때 주의할 점
문제 위 문제는 집계함수를 활용해 여러 값들을 출력하는 문제인데, 주문 별로 GROUP BY한 이후 집계함수를 적용한다면 상품수의 평균은 count() 함수와 AVG()함수를 함께 사용해야 하고, 주문액합계의 평균은 SUM()과 AVG()함수를 함께 사용해야 한다. 이때, 하나의 테이블에서 두개의 집계함수를 모두 사용한다면, 에러가 발생한다. WITH temp AS ( SELECT orderNo,count(quantity) '상품수', sum(priceEach * quantity) '주문액합계' FROM s_orderDetails GROUP BY orderNo ) SELECT count(orderNo) '주문수', AVG(상품수) '상품수의 평균', AVG(주문액합계) '주문액합계의 평균' FROM te..
2023.08.25 -
[SQL] GROUP BY, HVING 절 간단한 응용
포인트는 proudctLine컬럼을 기준으로 group by를 할 때, HVING 절을 활용해 상품수가 20개인 productLine만을 선택해야 하는 것이다. -- 코드를 입력하세요 SELECT productLine, count(*) '상품수', avg(buyPrice) '평균 구매단가', min(buyPrice) '최소 구매단가', max(buyPrice) '최대 구매단가' FROM s_products GROUP BY productLine HAVING count(*) >= 20 ; 이때 상품수에 대해 고민하는게 아니라 그냥 HAVING count(*) >= 20 을 사용한다면 productLine별로 새롭게 분류된 값들이 각 proudctLine별로 몇개나 있는지를 바로 적용할 수 있다.
2023.08.24 -
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 -
파이썬 NUMPY 이미지 파일 색깔 수정하
문제: 이미지 픽셀을 변경해주는 함수를 제작해봅시다. 이미지를 Array로 변환합니다. 주어진 시작 좌표와 가로, 세로 길이만큼 원하는 색상으로 변경합니다. 값을 수정한 Array를 이미지로 만들어서 반환합니다. modify_image() 매개변수 이미지: image: PIL.Image() 시작 x좌표: x: int 시작 y좌표: y: int 가로 길이: width: int 세로 길이: height: int 변경할 색상: color: List[int], 반환값 픽셀 변경을 진행한 이미지 내가 처음 작성한 코드 def modify_image(image,x,y,width,height,color) : image_array = np.array(image) image_array[x:x+width][y:y+heig..
2023.08.03