이번 게시글은 혼동하기 쉬운 SQL명령문을 정의하고 예시를 활용하여 sql 작동 방식에 대해서 설명하겠습니다.
활용 데이터는 ALL FRUITS - Average prices (CSV format)으로 위 url에서 다운 받을 수 있습니다.
미국 농무부 경제연구소(USDA, ERS)에서 조사한 자료로 일반적으로 미국 국민이 소비하는 신선 및 가공 과일과 채소의 평균 가격 데이터 입니다.
https://www.ers.usda.gov/data-products/fruit-and-vegetable-prices.aspx
총 62개의 과일 또는 채소의 데이터로 8개의 칼럼으로 구성되어 있습니다.
Fruit: Varchar 타입
From: Varchar 타입 - Canned / Dried / Fresh / Frozen / Juice 로 되어 있습니다.
RetailPriceUnit: Varchar
Yield - real (실수형 숫자 타입으로 소수점 이하의 값이 포함된 숫자를 의미합니다.)
CupEquivalentSize - real
CupEquivalentPrice - real
Where절은 From절에서 테이블을 필터링합니다.
Having절은 Group by 로 만들어진 테이블을 필터링 합니다.
# 예시1.
select form, avg(yield) as avg_yield
from Fruit_Prices
WHERE Yield > 0.5
group by Form
HAVING RetailPrice > 1.2
1. form과 yield평균 값을 새로운 칼럼인 avg_yield를 생성합니다.
2. Where: Yield 가 0.5 이상인 값들을 필터링합니다.
3. group by: Form별로 그룹화하면서 avg_yield값이 생성됩니다.
4. 그룹화된 값들을 가지고 retailprice가 1.2 보다 큰 값들만 추출합니다.
Where: From절의 테이블을 필터링하고
On: Join절인 테이블 테이블 결합조건의 기준을 세워줍니다.
# 예시2.
Invoice 테이블과 Customer 테이블이 있다.
두 테이블은 Customerid를 기준으로 조인할 수 있습니다.
CustomerID를 기준으로 조인하고 조인된 결과에서 total값이 5 보다 큰 값들만 추출하려고 합니다.
select a.invoiceid, a.CustomerId, a.Total, b.FirstName
from Invoice as a
join Customer as b
on a.CustomerId = b.CustomerId
WHERE a.Total > 5
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!