AVG(Column) | 조회 범위 내 해당 컬럼들의 평균값 - DISTINCT : 중복된 값은 제외 - ALL : Default로써 모든 값을 포함 - Column명 : NULL값은 제외 |
SELECT AVG(DISTINCT PROD_COST) AS "중복된 값은 제외"
, AVG(ALL PROD_COST) AS "DEFALT 로써 모든 값을 포함"
, AVG(PROD_COST) AS "매입가 평균"
FROM PROD;
-- 상품테이블의 상품분류별 매입가격 평균값
SELECT PROD_LGU
, ROUND(AVG(PROD_COST), 2)
FROM PROD
GROUP BY PROD_LGU;
-- 상품테이블의 총 판매가격 평균값을 구하시오
-- ALIAS는 상품 총판매가격 평균
SELECT AVG(PROD_SALE) AS 총판매가격평균
FROM PROD;
-- 상품테이블의 상품분류별 판매가격 평균값을 구하시오
-- ALIAS는 상품분류, 상품분류별판매가격평균
SELECT PROD_LGU
, ROUND(AVG(PROD_SALE) ,2)
FROM PROD
GROUP BY PROD_LGU;
COUNT | 조회 범위 내 해당 컬럼들의 자료 수 선택된 자료의 수 |
-- 거래처 테이블의 담당자(BUYER_CHARGER)를 컬럼으로 하여 COUNT 집계하시오
-- ALIAS는 자료수(DISTINCT), 자료수, 자료수(*)
SELECT COUNT(DISTINCT BUYER_CHARGER) AS 중복제거한자료수
, COUNT(BUYER_CHARGER) AS 자료수
, COUNT(*)
FROM BUYER;
-- 회원테이블의 취미별 COUNT 집계하시오
-- ALIAS는 취미, 자료수, 자료수(*)
SELECT MEM_LIKE AS 취미
, COUNT(MEM_LIKE) AS 자료수
, COUNT(*) AS 자료수
FROM MEMBER
GROUP BY MEM_LIKE;
MAX(col), MIN(col) |
조회 범위 내 해당 컬럼들 중 최대값과 최소값 여러 건의 데이터를 순서대로 정렬 후, 그 중에서 최댓값/최솟값 추출. 따라서 시간이 오래 걸리는 함수 중 한 가지이므로 사용 시 주의가 필요함. 대신 인덱스를 활용하는 것이 좋음. |
-- 장바구니테이블의 회원별, 최대구매수량을 검색하시오.
-- ALIAS는 회원ID, 최대수량, 최소수량
SELECT CART_MEMBER AS 회원ID
, MAX(DISTINCT CART_QTY) AS 중복제거최대수량
, MAX(CART_QTY)
, MIN(DISTINCT CART_QTY) AS 중복제거최소수량
, MIN(CART_QTY) AS 최소수량
FROM CART
GROUP BY CART_MEMBER;
SUM(column) | 조회 범위 내 해당 컬럼들의 합계 |
-- 상품테이블(PROD)의 상품분류(PROD_LGU)별 판매가(PROD_SALE)합계값
SELECT PROD_LGU
, SUM(PROD_SALE) AS 분류별판매가합계
FROM PROD
GROUP BY PROD_LGU;
GROUP | 집계함수를 제외한 SELECT절에 기술된 column명들은 모두 GROUP BY절에 기술 |
-- 상품테이블에서 거래처, 상품분류별로 최고판매가, 최소판매가 자료 수를 검색하시오.
SELECT PROD_BUYER AS 거래처
, PROD_LGU AS 상품분류
, MAX(PROD_SALE) AS 최고판매가
, MIN(PROD_SALE) AS 최소판매가
, COUNT(PROD_SALE) AS 자료수
FROM PROD
GROUP BY PROD_BUYER, PROD_LGU
ORDER BY PROD_BUYER, PROD_LGU;
HAVING | - WHERE절에서는 집계함수(SUM, AVG, MAX, MIN, COUNT)를 사용할 수 없다. - HAVING절은 집계함수를 가지고 조건비교할 때 사용한다. - HAVING절은 GROUP BY절과 함께 사용이 되고, GROUP BY절 다음에 사용해야한다. - HAVING절에 올 수 있는 컬럼은 (+ 조작된 컬럼 포함) GROUP BY 시의 SELECT절에 사용된 컬럼으로 한정한다. -GROUP BY가 사용된 SELECT 절에 없는 컬럼은 WHERE절에서만 조건으로 사용할 수 있다. |
SELECT SUBSTR(MEM_ADD1,1,2) AS 지역
, MEM_LIKE AS 취미
, COUNT(*) AS 사람수
FROM MEMBER
WHERE '19'|| SUBSTR(MEM_REGNO1,1,2) = TO_CHAR(MEM_BIR,'YYYY')
GROUP BY SUBSTR(MEM_ADD1,1,2), MEM_LIKE
HAVING COUNT(*) >= 2
ORDER BY 1,2;
[Oracle DB 입문 12] JOIN(1) (0) | 2021.03.12 |
---|---|
[Oracle DB 입문 10] SQL 함수 (0) | 2021.03.09 |
[Oracle DB 입문 09] SQL 함수 (0) | 2021.03.08 |
[Oracle DB 입문 08] SQL 예제 (0) | 2021.03.05 |
[Oracle DB 입문 07] SQL 예제 (0) | 2021.03.03 |