BookmarkSubscribeRSS Feed

[SQL] 혼동하기 쉬운 SQL 명령문

Started ‎08-31-2024 by
Modified ‎08-31-2024 by
Views 997

이번 게시글은 혼동하기 쉬운 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

1. Where & Having

 

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 보다 큰 값들만 추출합니다.

 

 

 

2. Where & On

 

Where: From절의 테이블을 필터링하고

On: Join절인 테이블 테이블 결합조건의 기준을 세워줍니다.

 

 

# 예시2.

 

image (8).png

 

 

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
Version history
Last update:
‎08-31-2024 08:30 AM
Updated by:
Contributors

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Article Labels
Article Tags