
๐ซ๏ธ ์์ ์ง์ญ ์ฐ๋๋ณ ํ๊ท ๋ฏธ์ธ๋จผ์ง ๋๋ โ ์ฟผ๋ฆฌ ๋ถ์
SELECT EXTRACT(YEAR FROM YM) AS YEAR,
ROUND(AVG(PM_VAL1), 2) AS PM10,
ROUND(AVG(PM_VAL2), 2) AS 'PM2.5'
FROM AIR_POLLUTION
WHERE LOCATION2 = '์์'
GROUP BY EXTRACT(YEAR FROM YM)
ORDER BY YEAR;
โ EXTRACT(YEAR FROM YM)
- YM์์ ์ฐ๋๋ง ์ถ์ถ
- GROUP BY์ SELECT์ ๋์ผํ๊ฒ ์ฌ์ฉํด ์ฐ๋๋ณ ์ง๊ณ ์ํ
โ ROUND(AVG(PM_VAL1), 2)
- ๋ฏธ์ธ๋จผ์ง(PM10)์ ํ๊ท ๊ฐ์ ์์ ๋์งธ ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผ
- AVG()๋ ์ง๊ณ ํจ์, ROUND(..., 2)๋ก ์ ๋ฐ๋ ์กฐ์
โ ROUND(AVG(PM_VAL2), 2) AS โPM2.5โ
- ์ด๋ฏธ์ธ๋จผ์ง(PM2.5) ํ๊ท ๊ฐ ๊ณ์ฐ
- ์ปฌ๋ผ๋ช ์ ๋ฌธ์์ด 'PM2.5'๋ก ์ถ๋ ฅ
โ WHERE LOCATION2 = โ์์โ
- LOCATION2๊ฐ '์์'์ธ ์ง์ญ๋ง ํํฐ๋ง
- ์ฐ๋์ ๋ฌด๊ดํ๊ฒ ๋ชจ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ง๊ณ
โ GROUP BY EXTRACT(YEAR FROM YM)
- ์ฐ๋ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ
- ๊ฐ ์ฐ๋๋ณ ํ๊ท ๊ฐ ๊ณ์ฐ์ ์ํ ํ์ ๊ตฌ๋ฌธ
๐ธ ๊ฐ๊ฒฉ๋๋ณ ์ํ ๊ฐ์๊ตฌํ๊ธฐ โ ์ฟผ๋ฆฌ ๋ถ์
SELECT FLOOR(PRICE/10000)*10000 AS PRICE_GROUP,
COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;
โ FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP
- PRICE๋ฅผ 10,000์ ๋จ์๋ก ๋ด๋ฆผ ์ฒ๋ฆฌ
- ์: 27,500 โ 20,000, 39,900 โ 30,000
- ๋์ผํ ๊ฐ๊ฒฉ๋๋ฅผ ํ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ๊ธฐ ์ํ ์ฒ๋ฆฌ
โ COUNT(*)
- ๊ฐ ๊ฐ๊ฒฉ ๊ทธ๋ฃน์ ์ํ๋ ์ํ ๊ฐ์ ๊ณ์ฐ
โ GROUP BY PRICE_GROUP
- ๋ด๋ฆผ๋ ๊ฐ๊ฒฉ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ
'DB > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL - 20250514 (0) | 2025.05.14 |
---|---|
SQL - 20250513 (2) | 2025.05.13 |
SQL - 20250506 (0) | 2025.05.06 |
SQL 20241005 (1) | 2024.10.05 |
SQL 20241003 (2) | 2024.10.03 |