카테고리 없음

[TIL6] SQL 강의 2주차

LHJ_ 2024. 11. 22. 16:25

1) SQL 숫자 연산 기호 사용 가능

 

2) SUM(컬럼) = 해당컬럼에 속하는 모든 값을 더함

     AVG(컬럼) = 해상 컬럼에 속하는 평균값

SELECT *,  //합과 평균값 외에 모든 컬럼을 출력하고 싶을 때 사용  ,<쉼표 잊지말기!!!!!!!!!!!!!!

//집계함수와 동시에 사용하면 집계함수가 출력되는 행의 개수만 출력이 됨 글서 필요없는 듯

SUM(food_preparation_time),

AVG(delivery_time)                          //마찬가지로 집계 함수를 동시에 사용할 때 !,!쉼표! 잊지말기!!!!!!!!!

FROM food_orders

 

3) 전체 데이터의 갯수 구하기

count() : 집계함수, 행의 개수를 셈

distinct : 중복 제거

select count(1), // 1(0과 1로 실행하는 컴퓨터 언어라서 그런 듯), * from에 적혀있는 모든 테이블의 행의 개수를 셈

count(distinct customer_id) count_of_customers

from food_orders


최솟값 : MIN() 

최댓값 : MAX()

 

SELECT

MIN(quantity) as min_quantity,

MAX(quantity) as max_quantity        //행갈이 두번하면 오류남

FROM food_orders

 

4) [실습] 주문 금액이 30,000원 이상인 주문건의 갯수 구하기

SELECT

COUNT(1)   //price를 적으면 안 되는 것임?! 이 테이블에선 상관없을 것 같긴한데...... 주문건의 갯수..주문건.... 흠...각 개인당 해당하는 id가 있어서 id를 적기도 한 듯

FROM food_orders

WHERE price >= 30000

 

[실습] 한국 음식의 주문 당 평균 음식가격 구하기

SELECT

AVG(price) as average_price

FROM food_orders

WHERE cuisine_type = 'Korean'   //문자열 쓸 때는 작은 따옴표 잊지말기~~~

 

5) GROUP BY

select cuisine_type,

SUM(price) sum_of_price     // 두가지 항목을 조회(출력)... 어떤 그룹으로 묶었는지 확인 가능

from food_orders

group by cuisine_type

 

음식점별 주문 금액 최댓값 조회하기

SELECT restaurant_name,

MAX(price) max_price

FROM food_orders

GROUP BY restaurant_name

 

결제 타입별 가장 최근 결제일 조회하기

SELECT pay_type,

MAX(date)                    //조회하기라고 말하기 때문에 모든 데이터를 조회할 필요가 없고, 제시문에 나온 조건만 출력하게 작성

FROM payments

GROUP BY pay_type

 

6) ORDER BY

select cuisine_type,

sum(price) sum_of_price  //음식타입과, 

from food_orders

group by cuisine_type  //음식타입 별로

order by sum(price)  //sum (price) 값 기준으로 정렬

 

DESC - 내림차순

ASC - 오름차순

 

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

SELECT restaurant_name,

MAX(price)

FROM food_orders

GROUP BY restaurant_name //WHERE 절까지 다 쓴 다음 마지막 순서

ORDER BY MAX(price) DESC

 

고객을 이름 순으로 오름차순으로 정렬하기

SELECT name

FROM customers

ORDER BY name (ASC)  //ASC는 넣어도 되고 안 넣어도 되고

 

구조1)

5. SELECT cuisine_type,
SUM(delivery_time),

total_delivery_time

4. FROM food_orders

3. WHERE day_of_the_week='Weekend'

2. GROUP BY cuisine_type

1. ORDER BY SUM(delivery_time) DESC

 

구조2)

2. SELECT age,

COUNT(name) count_of name

5. FROM customers

1. WHERE age 

BETWEEN 20 AND 40

4. GROUP BY age

3. ORDER BY age

 

 

[숙제]

SELECT cuisine_type,

MAX(price) max_price,

MIN(price) as min_price

FROM food_orders

GROUP BY cuisine_type

ORDER BY MIN(price) DESC