Coding Diary.

(SQL) MIN, MAX, AVG 개념 및 연습문제 본문

Coding/SQL

(SQL) MIN, MAX, AVG 개념 및 연습문제

life-of-nomad 2024. 5. 10. 13:15
728x90
반응형

schema

1) MIN, MAX

  • 각 열의 최솟값, 최댓값
  • 숫자가 아닌 열에도 사용 가능 (알파벳에서 가장 낮은(높은) 숫자, 가장 빠른(늦은) 날짜)

2) AVG

  • 데이터의 평균 (열의 모든값의 합계)/(열의 값의 수)
  • 분자와 분모 모두에서 NULL값을 무시
  • NULL을 0으로 계산하려면 SUM및 COUNT를 사용해야 함

3) 연습문제

  • 가장 먼저 주문한 것은 언제입니까? 날짜만 반환하면 됩니다.
SELECT MIN(occurred_at)
FROM orders;
  • 집계 함수를 사용하지 않고 질문 1과 동일한 쿼리를 수행해 보십시오.
SELECT occurred_at
FROM orders
ORDER BY occurred_at
LIMIT 1;
  • 가장 최근(최신) web_event는 언제 발생했습니까?
SELECT MAX(occurred_at)
FROM web_events;
  • 집계 함수를 사용하지 않고 이전 쿼리의 결과를 수행해 봅니다.
SELECT occurred_at
FROM web_events
ORDER BY occurred_at DESC
LIMIT 1;
  • 각 용지 종류에 대해 주문당 지출한 평균(AVERAGE) 금액과 주문당 구매한 각 용지 종류의 평균 금액을 찾습니다. 최종 답변에는 6개의 값이 있어야 합니다. 평균 판매 수와 평균 금액에 대한 각 용지 유형에 대해 하나씩입니다.
SELECT AVG(standard_qty) AS mean_standard,
AVG(gloss_qty) AS mean_gloss,
AVG(poster_qty) AS mean_poster,
AVG(standard_amt_usd) AS mean_standard_usd,
AVG(gloss_amt_usd) AS mean_gloss_usd,
AVG(poster_amt_usd) AS mean_poster_usd
FROM orders;
  • 모든 orders에 대해 지출된 MEDIAN(중앙값) total_usd는 얼마입니까?
    • 주문은 총 6912건이 있기 때문에 3457 및 3456의 주문 금액의 평균 구하기
SELECT *
FROM (SELECT total_amt_usd
             FROM orders 
             ORDER BY total_amt_usd
             LIMIT 3457) AS Table1
ORDER BY total_amt_usd DESC
LIMIT 2;

즉 2483.16과 2482.55의 평균 = 2482.855(중앙값)

728x90
반응형