-- 1. 상품 테이블에서 전체 상품 가격의 합을 조회
SELECT
SUM(g.g_price) AS '전체 상품 가격이 합'
FROM
tb_goods AS g;
-- 2. 상품 테이블에서 판매자 별 판매 상품 가격 합계와 판매자 아이디 조회
SELECT
g.g_seller_id AS '판매자 ID',
SUM(g.g_price) AS '판매 상품 가격 합계'
FROM
tb_goods AS g
GROUP BY g.g_seller_id;
-- 3. 판매자 별 취급 상품 가격 합계가 300만원보다 많은 판매자의 아이디, 금액 조회
SELECT
g.g_seller_id AS '판매자 ID',
SUM(g.g_price) AS '금액'
FROM
tb_goods AS g
GROUP BY g.g_seller_id
HAVING SUM(g.g_price) >= 3000000;
-- 4. 주문 테이블에서 최대 구매 수량, 최소 구매 수량, 총 구매 수량 조회
SELECT
MAX(o.o_amount) AS '최대 구매 수량',
MIN(o.o_amount) AS '최소 구매 수량',
SUM(o.o_amount) AS '총 구매 수량'
FROM
tb_order AS o;
1번 결과창2번 결과창3번 결과창4번 결과창
/*
1) WINDOW 함수
함수(칼럼_이름) OVER(PARTITION BY 칼럼_이름)
-함수 : 집계 함수, 순위 함수
-PARTITION BY : GROUP BY랑 비슷함(그룹으로 칼럼 작성)
*/
-- 1) WINDOW 함수
SELECT
c.CountryCode,
MAX(c.Population)
FROM
city AS c
GROUP BY c.CountryCode;
SELECT
c.CountryCode,
c.Population,
MAX(c.Population) OVER(PARTITION BY c.CountryCode) AS 'max_pop'
FROM
city AS c;
/*
2) 순위 함수
-RANK : 중복 값에 대해 동일 순위로 표시
-DENSE RANK : 중복 가능, 공동 순위가 있더라도 순차적 순위 표시
-ROW NUMBER : 중복이 없는 순위를 표시
*/
SELECT
c.Name,
ROW_NUMBER() OVER(PARTITION BY c.Population) AS 'ROW_NUMBER',
RANK() OVER(ORDER BY c.Population) AS 'RANK',
DENSE_RANK() OVER(ORDER BY c.Population) AS 'DENSE_RANK'
FROM
city AS c
WHERE
c.CountryCode = 'kor';