1) ๋ฌธ์ ์ค๋ช
- ๋์์ฑ์์ ์ฌ์ฉํ๋ FISH_INFO ํ ์ด๋ธ์ ์ก์ ๋ฌผ๊ณ ๊ธฐ๋ค์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
- FISH_INFO ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ ID, FISH_TYPE, LENGTH, TIME์ ๊ฐ๊ฐ ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ID, ๋ฌผ๊ณ ๊ธฐ์ ์ข ๋ฅ(์ซ์), ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ๊ธธ์ด(cm), ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์ก์ ๋ ์ง๋ฅผ ๋ํ๋ ๋๋ค.
Column name | Type | Nullable |
ID | INTEGER | FALSE |
FISH_TYPE | INTEGER | FALSE |
LENGTH | FLOAT | TRUE |
TIME | DATE | FALSE |
- ๋จ, ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ๊ธธ์ด๊ฐ 10cm ์ดํ์ผ ๊ฒฝ์ฐ์๋ LENGTH ๊ฐ NULL ์ด๋ฉฐ, LENGTH ์ NULL ๋ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
2) ๋ฌธ์
- ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ํ๊ท ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
- ํ๊ท ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ์ปฌ๋ผ ๋ช ์ AVERAGE_LENGTH๋ก ํด์ฃผ์ธ์.
- ํ๊ท ๊ธธ์ด๋ ์์์ 3์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ๋ฉฐ, 10cm ์ดํ์ ๋ฌผ๊ณ ๊ธฐ๋ค์ 10cm ๋ก ์ทจ๊ธํ์ฌ ํ๊ท ๊ธธ์ด๋ฅผ ๊ตฌํด์ฃผ์ธ์.
3) ์์
- ์๋ฅผ ๋ค์ด FISH_INFO ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
ID | FISH_TYPE | LENGTH |
0 | 0 | 30 |
1 | 0 | 50 |
2 | 0 | 40 |
3 | 1 | 20 |
4 | 1 | NULL |
5 | 2 | NULL |
- 10cm ์ดํ์ ๋ฌผ๊ณ ๊ธฐ๋ 10cm ๋ก ์ทจ๊ธํ๋ฏ๋ก ์ด ๋ฌผ๊ณ ๊ธฐ์ ๊ธธ์ด์ ํฉ์ 30 + 50 + 40 + 20 + 10 +10 = 160 ์ด๋ฉฐ ์ด ๋ฌผ๊ณ ๊ธฐ์ ์๋ 6๋ง๋ฆฌ์ด๋ฏ๋ก ์ก์ ๋ฌผ๊ณ ๊ธฐ์ ํ๊ท ๊ธธ์ด๋ 160/6 = 26.666.. ์ ๋๋ค.
- ์ด๋ฅผ ์์์ 3์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ๋ฉด 26.67 ์ด๋ฏ๋ก ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
AVERAGE_LENGTH |
26.67 |
4) ํ์ด
SELECT ROUND(AVG(IFNULL(LENGTH, 10)),2) AS "AVERAGE_LENGTH"
FROM FISH_INFO;
[Reference]
๋ฐ์ํ