[3] DBeaver - DBeaver 활용한 sql 2주차 강의

2024. 9. 16. 21:07DBeaver

728x90

※  8월에 들었던 SQL강의 관련 포스팅

ㄴ 2주차 일부 쿼리

ㄴ 전체는 너무 길어서 일부만 캡쳐

 

 

1.  계산 / 합계,평균 /  데이터갯수 /  최대,최소값

ㄴ 1-1) 더하기, 나누기, 곱하기 사용

ㄴ 1-2) sum, avg 함수 사용

ㄴ 1-3) count 함수 사용

ㄴ 1-4) max, min 함수 사용

# 1-1) 계산 
SELECT 
	컬럼명A + 컬럼명B as 별명 
FROM 테이블명; 
# 더하기, 곱하기, 나누기 (+) (*) (/) - 더하기에서 변경하여 사용 가능
# 컬럼A,B가 아닌 컬럼 + 10 이런형태로 숫자를 넣어서 계산도 가능

# 1-2) 합계, 평균값
SELECT 
	SUM(컬럼명A) 별명A,
	AVG(컬럼명B) 별명B
FROM food_orders; # 합계, 평균값 구하기
# 합계는 SUM / 평균은 AVG이다.


# 1-3) 데이터 갯수 가져오기.
SELECT 
	COUNT(1) 별명A,
	COUNT(DISTINCT 컬럼명) 별명B
FROM food_orders; # 카운트 갯수 가져오기
# COUNT() 함수는 갯수를 가져오는 함수다.
# COUNT(1), COUNT(*)은 전체 데이터 개수 / COUNT(컬럼명) 컬럼의 데이터 갯수이다.


# 1-4) 최소값, 최대값
SELECT 
	MIN(컬럼명A) 별명A,
	MAX(컬럼명B) 별명B
FROM food_orders; # 최소,최대값
# 최소값은 MIN / 최대값은 MAX이다.

 

2.  1관련 실습 2문제

ㄴ 2-1) 주문금액 30000원 이상 주문건 갯수 구하기

ㄴ 2-2) 한국 음식의 주문 당 평균 음식 가격 구하기

# 주문금액 30000원 이상 주문건 갯수 구하기
SELECT COUNT(1) as order_count FROM 주문정보테이블 WHERE 주문금액컬럼 >= 30000;

# 한국 음식의 주문 당 평균 음식 가격 구하기
SELECT AVG(주문금액컬럼) as avg_price FROM 주문정보테이블 WHERE 음식점나라명컬럼 = 'Korean';

 

3.  GROUP BY 구문 - 범주별 계산

ㄴ 3-1) 식당타입별로 주문금액 합계 구하기

ㄴ 3-2) 음식점이름별로 주문금액 최대값 구하기

ㄴ 3-3) 결제타입별로 가장 최근 결제일 조회하기

# 식당타입별로 주문금액 합계 구하기
SELECT 
	식당타입컬럼,
	sum(주문금액컬럼) sum_of_price
FROM 주문정보테이블 GROUP BY 식당타입컬럼;

# 음식점이름별로 주문 금액 최대값 구하기
SELECT 
	음식점이름컬럼, 
	MAX(주문금액컬럼) max_of_price
FROM 주문정보테이블 GROUP BY 음식점이름컬럼; 

# 결제타입별로 가장 최근 결제일 조회하기
SELECT 
	결제타입컬럼,
	MAX(결제일컬럼) recent_date # 가장 최근이기 때문에 가장 큰 날짜추출을 위한 MAX(최대값 사용)
FROM 결제정보테이블 GROUP BY 결제타입컬럼;

 

4.  정렬 - order by ( 기본값 오름차순 )

ㄴ 4-1) 식당 나라별로 주문금액 합계를 구하고 합계 금액이 적은순으로 정렬

ㄴ 4-2) 음식점별 주문 금액 최대값 조회하기 - 최대값 기준으로 내림차순 정렬

ㄴ 4-3) 고객의 이름순으로 오름차순 정렬하기

# 식당 나라별로 주문금액 합계를 구하고 합계 금액이 적은순으로 정렬
SELECT 
	음식점나라이름컬럼, 
	sum(주문금액컬럼) sum_of_price 
FROM 주문정보테이블
GROUP BY 음식점나라이름컬럼 
ORDER BY sum(주문금액컬럼); 

# 음식점별 주문 금액 최대값 조회하기 - 최대값 기준으로 내림차순 정렬
SELECT 
	식당이름컬럼, 
	MAX(주문금액) max_of_price 
FROM 주문정보테이블
GROUP BY 식당이름컬럼 
ORDER BY MAX(주문금액) DESC;

# 고객의 이름순으로 오름차순 정렬하기
SELECT 고객이름컬럼 FROM 고객정보테이블 ORDER BY 고객이름컬럼 ASC; # 오름차순은 자동으로 정렬되어 ASC를 입력하지 않아도됨.

 

 

5.  최종 실습

ㄴ음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기

# 음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로 (내림차순) 정렬하기
SELECT 
	음식나라이름컬럼(음식종류컬럼),
	MIN(주문금액) AS min_price,
	MAX(주문금액) AS max_price
FROM 주문정보테이블
GROUP BY 음식나라이름컬럼(음식종류컬럼)
ORDER BY MIN(주문금액) DESC;

ㄴ 음식종류별 - GROUP BY로 음식종류컬럼을 묶어라

ㄴ 가장 높은 주문금액 - MAX()로 금액 추출

ㄴ 가장 낮은 주문금액 - MIN()으로 금액 추출

ㄴ 가장 낮은 주문금액 순으로 내림차순 정렬 - ORDER BY로 MIN(주문금액)으로 묶고, DESC로 정렬하라.

※ 종합하면 위와 같은 쿼리문이 형성됩니다.

728x90