๐โ ํ์์ด๋ฆ๊ณผ ์ฃผ์์ง๋ฅผ ํ์ํ์ธ์. ๋จ, ์ถ๋ ฅ ํค๋๋ "ํ์ ์ด๋ฆ", "์ฃผ์์ง"๋ก ํ๊ณ , ์ ๋ ฌ์ ์ด๋ฆ์ผ๋ก ์ค๋ฆ์ฐจ์ ํ์ํ๋๋ก ํฉ๋๋ค.
๐ฉ Example Output
588 rows selected
ํ์ ์ด๋ฆ | ์ฃผ์์ง |
---|---|
๊ฐํ์ | ์์ธ๊ฐ์๋ฑ์ด๋691-3๋ถ์@102-505 |
๊ฐ๋์ฐ | ๊ฒฝ๊ธฐ๋ ์์ ๋ถ์ ๋ฏผ๋ฝ๋ 694 ์ฐ๋ค๋ง์ ๋๋ฆผ์ํํธ 404-1404 |
. . . . . . | . . . . . . |
ํฉํ์ฒ | ์ ๋จ ์์ฒ์ ์๋ชฉ๋ ํ๋โ 106/407 T.061-772-2101 |
ํฉํจ์ข | ์ธ์ฒ์์๊ตฌ ์๋จ๋ 564-4๋ฒ์ง |
SELECT
STUDENT_NAME "ํ์ ์ด๋ฆ"
, STUDENT_ADDRESS ์ฃผ์์ง
FROM TB_STUDENT
ORDER BY 1;
๐โ ํดํ์ค์ธ ํ์๋ค์ ์ด๋ฆ๊ณผ ์ฃผ๋ฏผ๋ฒํธ๋ฅผ ๋์ด๊ฐ ์ ์ ์์๋ก ํ๋ฉด์ ์ถ๋ ฅํ์ธ์.
๐ฉ Example Output
91 rows selected
STUDENT_NAME | STUDENT_SSN |
---|---|
๋ฆดํฌ๊ถ | 871222 |
ํฉํจ์ข | 871125 |
. . . . . . | . . . . . . |
์ต์ ํฌ | 791215 |
์กฐ๊ธฐํ | 791002 |
SELECT
STUDENT_NAME
, STUDENT_SSN
FROM TB_STUDENT
WHERE ABSENCE_YN = 'Y'
ORDER BY MONTHS_BETWEEN(SYSDATE, TO_DATE(SUBSTR(STUDENT_SSN, 1, 6))) / 12;
๐โ ์ฃผ์์ง๊ฐ ๊ฐ์๋๋ ๊ฒฝ๊ธฐ๋์ธ ํ์๋ค ์ค 1900 ๋ ๋ ํ๋ฒ์ ๊ฐ์ง ํ์๋ค์ ์ด๋ฆ๊ณผ ํ๋ฒ, ์ฃผ์๋ฅผ ์ด๋ฆ์ ์ค๋ฆ์ฐจ์์ผ๋ก ํ๋ฉด์ ์ถ๋ ฅํ์ธ์. ๋จ, ์ถ๋ ฅํค๋์๋ "ํ์์ด๋ฆ","ํ๋ฒ", "๊ฑฐ์ฃผ์ง ์ฃผ์" ๊ฐ ์ถ๋ ฅ๋๋๋ก ํฉ๋๋ค.
๐ฉ Example Output
9 rows selected
ํ์์ด๋ฆ | ํ๋ฒ | ๊ฑฐ์ฃผ์ง ์ฃผ์ |
---|---|---|
๊น๊ณ์ | 9919024 | ๊ฒฝ๊ธฐ๋ ์ฉ์ธ์ ์์ง๊ตฌ ํ๋์ฒ2๋ ์ ์ ๋ง์ ์๊ด 305-1703ํธ |
๋ฐ๊ท์ | 9931111 | ๊ฒฝ๊ธฐ๋ ์ฑ๋จ์ ๋ถ๋น๊ตฌ ํ๋ง์ 526 ๊ฒฝ๋จ์ํํธ 710-1302 |
. . . . . . | . . . . . . | . . . . . . |
์กฐ๊ธฐํ | 9931312 | ๊ฒฝ๊ธฐ๋ ์ํฅ์ ๋งคํ๋ 194-1 ๋์ง์ํํธ 1-305 |
SELECT
STUDENT_NAME ํ์์ด๋ฆ
, STUDENT_NO ํ๋ฒ
, STUDENT_ADDRESS "๊ฑฐ์ฃผ์ง ์ฃผ์"
FROM TB_STUDENT
WHERE STUDENT_NO NOT LIKE 'A%'
AND STUDENT_ADDRESS LIKE '%๊ฒฝ๊ธฐ๋%'
OR STUDENT_ADDRESS LIKE '%๊ฐ์๋%'
ORDER BY 1;
๐โ ํ์ฌ ๋ฒํ๊ณผ ๊ต์ ์ค ๊ฐ์ฅ ๋์ด๊ฐ ๋ง์ ์ฌ๋๋ถํฐ ์ด๋ฆ์ ํ์ธํ ์ ์๋ SQL ๋ฌธ์ฅ์ ์์ฑํ์ธ์. (๋ฒํ๊ณผ์ 'ํ๊ณผ์ฝ๋'๋ ํ๊ณผ ํ ์ด๋ธ(TB_DEPARTMENT)์ ์กฐํํด์ ์ฐพ๊ธฐ)
๐ฉ Example Output
4 rows selected
PROFESSOR_NAME | PROFESSOR_SSN |
---|---|
ํ๋จ์ | 540304-1112251 |
๊น์ ํฌ | 551030-2159000 |
์์ง์ | 640125-1143548 |
์ด๋ฏธ๊ฒฝ | 741016-2103506 |
SELECT
PROFESSOR_NAME
, PROFESSOR_SSN
FROM TB_PROFESSOR
WHERE DEPARTMENT_NO = '005'
ORDER BY MONTHS_BETWEEN(SYSDATE, TO_DATE(SUBSTR(PROFESSOR_SSN, 1, 6))) / 12 DESC;
SELECT
PROFESSOR_NAME
, PROFESSOR_SSN
FROM TB_PROFESSOR
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
WHERE DEPARTMENT_NAME = '๋ฒํ๊ณผ'
ORDER BY 2;
๐โ 2004 ๋ 2 ํ๊ธฐ์ 'C3118100' ๊ณผ๋ชฉ์ ์๊ฐํ ํ์๋ค์ ํ์ ์ ์กฐํํ๋ ค๊ณ ํฉ๋๋ค. ํ์ ์ด ๋์ ํ์๋ถํฐ ํ์ํ๊ณ , ํ์ ์ด ๊ฐ์ผ๋ฉด ํ๋ฒ์ด ๋ฎ์ ํ์๋ถํฐ ํ์ํ๋ ๊ตฌ๋ฌธ์ ์์ฑํด๋ณด์ธ์.
๐ฉ Example Output
7 rows selected
STUDENT_NO | POINT |
---|---|
A352017 | 4.00 |
A115270 | 3.50 |
. . . . . . | . . . . . . |
A331076 | 2.00 |
SELECT
STUDENT_NO
, TO_CHAR(POINT, 99.99) POINT
FROM TB_GRADE
WHERE TERM_NO = '200402'
AND CLASS_NO = 'C3118100'
ORDER BY 2 DESC, 1 DESC;
SELECT
STUDENT_NO
, TO_CHAR(POINT,'9.00') POINT
FROM TB_GRADE
WHERE TERM_NO = '200402'
AND CLASS_NO = 'C3118100'
ORDER BY POINT DESC, STUDENT_NO;
๐โ ํ์ ๋ฒํธ, ํ์ ์ด๋ฆ, ํ๊ณผ ์ด๋ฆ์ ํ์ ์ด๋ฆ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํ์ธ์.
๐ฉ Example Output
588 rows selected
STUDENT_NO | STUDENT_NAME | DEPARTMENT_NAME |
---|---|---|
A411001 | ๊ฐํ์ | ์น์ํ๊ณผ |
A131004 | ๊ฐ๋์ฐ | ๋์์ธํ๊ณผ |
. . . . . . | . . . . . . | |
A411335 | ํฉํ์ฒ | ์ฌํํ๊ณผ |
A511332 | ํฉํจ์ข | ์ปดํจํฐ๊ณตํ๊ณผ |
SELECT
STUDENT_NO
, STUDENT_NAME
, DEPARTMENT_NAME
FROM TB_STUDENT
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
ORDER BY 2;
๐โ ์ถ ๊ธฐ์ ๋ํ๊ต์ ๊ณผ๋ชฉ ์ด๋ฆ๊ณผ ๊ณผ๋ชฉ์ ํ๊ณผ ์ด๋ฆ์ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ฅ์ ์์ฑํ์ธ์.
๐ฉ Example Output
882 rows selected
CLASS_NAME | DEPARTMENT_NAME |
---|---|
๊ณ ์ ์๊ฐ๋ก ํน๊ฐ | ๊ตญ์ด๊ตญ๋ฌธํ๊ณผ |
๊ตญ์ด์ดํ๋ก ํน๊ฐ | ๊ตญ์ด๊ตญ๋ฌธํ๊ณผ |
. . . . . . | . . . . . . |
๋ ผ๋ฌธ์ง๋(๊ณต๊ฐ๋ฐํ)3 | ์ฒด์กํ๊ณผ |
์ฒด์ก์๋ฆฌํ์ฐ๊ตฌ | ์ฒด์กํ๊ณผ |
SELECT
CLASS_NAME
, DEPARTMENT_NAME
FROM TB_CLASS
JOIN TB_DEPARTMENT USING (DEPARTMENT_NO);
๐โ ๊ณผ๋ชฉ๋ณ ๊ต์ ์ด๋ฆ์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค. ๊ณผ๋ชฉ ์ด๋ฆ๊ณผ ๊ต์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํ์ธ์.
๐ฉ Example Output
776 rows selected
CLASS_NAME | PROFESSOR_NAME |
---|---|
๋์์ง๋ฆฌํ | ๋ฐํํ |
๋์์ง๋ฆฌํ | ๊น์ ํ |
. . . . . . | . . . . . . |
๋ ผ๋ฌธ์ง๋1 | ๋ฐฑ์์ |
๋ ผ๋ฌธ์ง๋2 | ์ ์ฉ์ |
SELECT
CLASS_NAME
, PROFESSOR_NAME
FROM TB_CLASS
JOIN TB_CLASS_PROFESSOR USING(CLASS_NO)
JOIN TB_PROFESSOR USING(PROFESSOR_NO);
๐โ 8 ๋ฒ์ ๊ฒฐ๊ณผ ์ค โ์ธ๋ฌธ์ฌํโ ๊ณ์ด์ ์ํ ๊ณผ๋ชฉ์ ๊ต์ ์ด๋ฆ์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค. ์ด์ ํด๋นํ๋ ๊ณผ๋ชฉ ์ด๋ฆ๊ณผ ๊ต์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํ์ธ์.
๐ฉ Example Output
197 rows selected
CLASS_NAME | PROFESSOR_NAME |
---|---|
์ธ์ฌ์กฐ์งํ๋ ํน๋ณ์ฐ๊ตฌ | ๊ฐํ |
๋ ผ๋ฌธ์ง๋1 | ๊ฐํ |
. . . . . . | . . . . . . |
์ ๊ธฐ์ ์ธ๋ฏธ๋ | ํฉํ์ค |
์ง์๊ฒฝ์๊ณผ ๋น์ง๋์ค ์ธํ ๋ฆฌ์ ์ค | ํฉํ์ค |
SELECT
CLASS_NAME
, PROFESSOR_NAME
FROM TB_CLASS C
JOIN TB_CLASS_PROFESSOR USING(CLASS_NO)
JOIN TB_PROFESSOR USING(PROFESSOR_NO)
JOIN TB_DEPARTMENT D ON(C.DEPARTMENT_NO = D.DEPARTMENT_NO)
WHERE D.CATEGORY = '์ธ๋ฌธ์ฌํ'
ORDER BY 2;
๐โ โ์์ ํ๊ณผโ ํ์๋ค์ ํ์ ์ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์์ ํ๊ณผ ํ์๋ค์ "ํ๋ฒ", "ํ์ ์ด๋ฆ", "์ ์ฒด ํ์ "์ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ฅ์ ์์ฑํ์ธ์. (๋จ, ํ์ ์ ์์์ 1 ์๋ฆฌ๊น์ง๋ง ๋ฐ์ฌ๋ฆผํ์ฌ ํ์)
๐ฉ Example Output
7 rows selected
ํ๋ฒ | ํ์ ์ด๋ฆ | ์ ์ฒด ํ์ |
---|---|---|
9931310 | ์กฐ๊ธฐํ | 4.1 |
A411116 | ๋ฐํํ | 3.6 |
. . . . . . | . . . . . . | . . . . . . |
A612052 | ์ ๊ดํ | 4.1 |
SELECT
STUDENT_NO ํ๋ฒ
, STUDENT_NAME "ํ์ ์ด๋ฆ"
, ROUND(AVG(POINT), 1) "์ ์ฒด ํ์ "
FROM TB_STUDENT
JOIN TB_GRADE USING(STUDENT_NO)
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
WHERE DEPARTMENT_NAME = '์์
ํ๊ณผ'
GROUP BY STUDENT_NO, STUDENT_NAME
ORDER BY 1;
๐โ ํ๋ฒ์ด A313047 ์ธ ํ์์ด ํ๊ต์ ๋์ค๊ณ ์์ง ์์ต๋๋ค. ์ง๋ ๊ต์์๊ฒ ๋ด์ฉ์ ์ ๋ฌํ๊ธฐ ์ํ ํ๊ณผ ์ด๋ฆ, ํ์ ์ด๋ฆ๊ณผ ์ง๋ ๊ต์ ์ด๋ฆ์ด ํ์ํฉ๋๋ค. ์ด๋ ์ฌ์ฉํ SQL ๋ฌธ์ ์์ฑํ์ธ์. ๋จ, ์ถ๋ ฅํค๋๋ โํ๊ณผ์ด๋ฆโ, โํ์์ด๋ฆโ, โ์ง๋๊ต์์ด๋ฆโ์ผ๋ก ์ถ๋ ฅ๋๋๋ก ํฉ๋๋ค.
๐ฉ Example Output
1 row selected
ํ๊ณผ์ด๋ฆ | ํ์์ด๋ฆ | ์ง๋๊ต์์ด๋ฆ |
---|---|---|
๊ฒฝ์ ํ๊ณผ | ์๊ฑด์ | ๋ฐํํ |
SELECT
DEPARTMENT_NAME ํ๊ณผ์ด๋ฆ
, STUDENT_NAME ํ์์ด๋ฆ
, PROFESSOR_NAME ์ง๋๊ต์์ด๋ฆ
FROM TB_DEPARTMENT
JOIN TB_STUDENT USING(DEPARTMENT_NO)
JOIN TB_PROFESSOR ON(COACH_PROFESSOR_NO = PROFESSOR_NO)
WHERE STUDENT_NO = 'A313047';
๐โ 2007 ๋ ๋์ '์ธ๊ฐ๊ด๊ณ๋ก ' ๊ณผ๋ชฉ์ ์๊ฐํ ํ์์ ์ฐพ์ ํ์์ด๋ฆ๊ณผ ์๊ฐํ๊ธฐ๋ฅผ ํ์ํ๋ SQL ๋ฌธ์ฅ์ ์์ฑํ์ธ์.
๐ฉ Example Output
2 rows selected
ํ์์ด๋ฆ | ์๊ฐํ๊ธฐ |
---|---|
์ค์งํ | 200701 |
์ด์ ํธ | 200703 |
SELECT
STUDENT_NAME ํ์์ด๋ฆ
, TERM_NO ์๊ฐํ๊ธฐ
FROM TB_STUDENT
JOIN TB_GRADE USING(STUDENT_NO)
JOIN TB_CLASS USING(CLASS_NO)
WHERE TERM_NO LIKE '2007%'
AND CLASS_NAME = '์ธ๊ฐ๊ด๊ณ๋ก '
ORDER BY 1;
๐ฌ Overall Comment
* ์ฒ์์ TB_CLASS๋ฅผ JOINํ๋ ค๊ณ ํ์ ๋, TB_STUDENT์ DEPARTMENT_NO๋ก JOIN์ ํ๋ค๊ฐ
๊ฒฐ๊ณผ๊ฐ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ค์ง ์์๋ค. ๊ทธ๋์ TB_GRADE์ CLASS_NO๋ก JOIN ๋ฐฉ์์ ๋ฐ๊พผ ๊ฒฐ๊ณผ,
์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ๋ฌธ์ด ๋์๋ค. JOIN์ ํ ๋, ๋ง๋ฌด๊ฐ๋ด๋ก ๊ณตํต๋๋ ์ปฌ๋ผ๋ผ๋ฆฌ JOIN์ ํ๋ฉด ์๋๋ค๋
๊ตํ์ ์ป๊ฒ ๋ ๋ฌธํญ์ด์๋ค. ํญ์ ๋ฌด์์ ์ถ๋ ฅํด์ผํ๋์ง ์๊ฐ์ ํ๊ณ JOIN์ ํด์ผํ๋ค.
๐โ ์์ฒด๋ฅ ๊ณ์ด ๊ณผ๋ชฉ ์ค ๊ณผ๋ชฉ ๋ด๋น๊ต์๋ฅผ ํ ๋ช ๋ ๋ฐฐ์ ๋ฐ์ง ๋ชปํ ๊ณผ๋ชฉ์ ์ฐพ์ ๊ทธ ๊ณผ๋ชฉ ์ด๋ฆ๊ณผ ํ๊ณผ ์ด๋ฆ์ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ฅ์ ์์ฑํ์ธ์.
๐ฉ Example Output
44 rows selected
CLASS_NAME | DEPARTMENT_NAME |
---|---|
๋ฌด์ฉ๊ธฐ๋ฅํ | ๊ณต์ฐ์์ ํ๊ณผ |
๋ ผ๋ฌธ์ง๋1 | ๊ณต์ฐ์์ ํ๊ณผ |
. . . . . . | . . . . . . |
์คํฌ์ธ ์ฐ์ ์ฐ๊ตฌ ์ฒด์กํ๊ณผ | |
ํด๋ถํ์คํ | ์ฒด์กํ๊ณผ |
SELECT
CLASS_NAME
, DEPARTMENT_NAME
FROM TB_CLASS
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
LEFT JOIN TB_CLASS_PROFESSOR USING(CLASS_NO)
WHERE CATEGORY = '์์ฒด๋ฅ'
AND PROFESSOR_NO IS NULL
ORDER BY 2;
๐โ ์ถ ๊ธฐ์ ๋ํ๊ต ์๋ฐ์์ดํ๊ณผ ํ์๋ค์ ์ง๋๊ต์๋ฅผ ๊ฒ์ํ๊ณ ์ ํฉ๋๋ค. ํ์์ด๋ฆ๊ณผ ์ง๋๊ต์ ์ด๋ฆ์ ์ฐพ๊ณ ๋ง์ผ ์ง๋ ๊ต์๊ฐ ์๋ ํ์์ผ ๊ฒฝ์ฐ "์ง๋๊ต์ ๋ฏธ์ง์ โ์ผ๋ก ํ์ํ๋๋ก ํ๋ SQL ๋ฌธ์ ์์ฑํ์ธ์. ๋จ, ์ถ๋ ฅํค๋๋ โํ์์ด๋ฆโ, โ์ง๋๊ต์โ๋ก ํ์ํ๋ฉฐ ๊ณ ํ๋ฒ ํ์์ด ๋จผ์ ํ์๋๋๋ก ํฉ๋๋ค.
๐ฉ Example Output
14 rows selected
ํ์์ด๋ฆ | ์ง๋๊ต์ |
---|---|
์ฃผํ๋ | ํ๋ฌธํ |
์ดํฌ์ง | ๋จ๋ช ๊ธธ |
. . . . . . | . . . . . . |
๊น์ ํ | ๋ฐ์คํธ |
์ต์ฒ ํ | ๋ฐฑ์์ |
SELECT
STUDENT_NAME ํ์์ด๋ฆ
, NVL(PROFESSOR_NAME, '์ง๋๊ต์ ๋ฏธ์ง์ ') ์ง๋๊ต์
FROM TB_STUDENT S
LEFT JOIN TB_PROFESSOR ON(COACH_PROFESSOR_NO = PROFESSOR_NO)
JOIN TB_DEPARTMENT D ON(S.DEPARTMENT_NO = D.DEPARTMENT_NO)
WHERE DEPARTMENT_NAME = '์๋ฐ์์ดํ๊ณผ'
ORDER BY S.ENTRANCE_DATE;
๐โ ํดํ์์ด ์๋ ํ์ ์ค ํ์ ์ด 4.0 ์ด์์ธ ํ์์ ์ฐพ์ ๊ทธ ํ์์ ํ๋ฒ, ์ด๋ฆ, ํ๊ณผ ์ด๋ฆ, ํ์ ์ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํ์ธ์.
๐ฉ Example Output
19 rows selected
ํ๋ฒ | ์ด๋ฆ | ํ๊ณผ ์ด๋ฆ | ํ์ |
---|---|---|---|
9811251 | ๊น์ถฉ์ | ๊ฑด์ถ๊ณตํ๊ณผ | 4.11111111 |
9817035 | ๊น์๋ผ | ํ ๋ชฉ๊ณตํ๊ณผ | 4 |
. . . . . . | . . . . . . | . . . . . . | . . . . . . |
A517069 | ๋ฐ์นํ | ์ ํ๊ณตํ๊ณผ | 4 |
A612052 | ์ ๊ดํ | ์์ ํ๊ณผ | 4.1 |
SELECT
STUDENT_NO ํ๋ฒ
, STUDENT_NAME ์ด๋ฆ
, DEPARTMENT_NAME "ํ๊ณผ ์ด๋ฆ"
, ROUND(AVG(POINT), 8) ํ์
FROM TB_STUDENT
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
JOIN TB_GRADE USING(STUDENT_NO)
WHERE ABSENCE_YN = 'N'
GROUP BY STUDENT_NO, STUDENT_NAME, DEPARTMENT_NAME
HAVING AVG(POINT) >= 4.0
ORDER BY 1;
๐ฌ Overall Comment
* GROUP BY์ HAVING์ ์ ์ ํ ๋์ ์ฌ์ฉํ๋ ๋ฒ์ด ๊ธด๊ฐ๋ฏผ๊ฐ ํ์๋๋ฐ, ์ด ๋ฌธํญ์ ํ๋ฉด์
์ ๋๋ก ์ดํดํ๊ณ ์ ์ฉ์ํฌ ์ ์๊ฒ ๋์๋ค. GROUP BY๋ฅผ ์ฌ์ฉํ ์, ์กฐํํ ์ปฌ๋ผ ์ค
๊ทธ๋ฃนํจ์๋ฅผ ์ ์ธํ ๋๋จธ์ง๋ค์ ๋ชจ๋ GROUP BY์ ์ ๋์ดํด์ค์ผํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด
'GROUP BY ํํ์์ด ์๋๋๋ค.'๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ HAVING์ ์ ๊ทธ๋ฃน์ ๋ํ
์กฐ๊ฑด์ด๋ฏ๋ก WHERE์ ์ ์
๋ ฅํด์ผํ ์กฐ๊ฑด๊ณผ ํผ๋ํ์ง ์์์ผํ๋ค.
๐โ ํ๊ฒฝ์กฐ๊ฒฝํ๊ณผ ์ ๊ณต๊ณผ๋ชฉ๋ค์ ๊ณผ๋ชฉ ๋ณ ํ์ ์ ํ์ ํ ์ ์๋ SQL ๋ฌธ์ ์์ฑํ์ธ์.
๐ฉ Example Output
6 rows selected
CLASS_NO | CLASS_NAME | AVG(POINT) |
---|---|---|
C3016200 | ์ ํต๊ณ์น๋ฐฉ๋ฒ๋ก | 3.91666666 |
C3081300 | ์กฐ๊ฒฝ๊ณํ๋ฐฉ๋ฒ๋ก | 3.55 |
. . . . . . | . . . . . . | . . . . . . |
C4477600 | ์กฐ๊ฒฝ์ํ | 3.36666666 |
C5009300 | ๋จ์ง๊ณํ๋ฐ์ค๊ณ์คํ๋์ค | 3.42857142 |
SELECT
CLASS_NO
, CLASS_NAME
, TRUNC(AVG(POINT), 8) "AVG(POINT)"
FROM TB_CLASS
JOIN TB_GRADE USING(CLASS_NO)
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
WHERE DEPARTMENT_NAME = 'ํ๊ฒฝ์กฐ๊ฒฝํ๊ณผ'
AND CLASS_TYPE LIKE '์ ๊ณต%'
GROUP BY CLASS_NO, CLASS_NAME
ORDER BY 1;
๐โ ์ถ ๊ธฐ์ ๋ํ๊ต์ ๋ค๋๊ณ ์๋ ์ต๊ฒฝํฌ ํ์๊ณผ ๊ฐ์ ๊ณผ ํ์๋ค์ ์ด๋ฆ๊ณผ ์ฃผ์๋ฅผ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํ์ธ์. (์ ์๋ ์ฝ๋)
๐ฉ Example Output
17 rows selected
STUDENT_NAME | STUDENT_ADDRESS |
---|---|
๊น์๋ฏผ | ๊ฒฝ๊ธฐ๋์์ฐ์์๋ก๊ตฌ2๋664๋ฒ์งํฌ๋ฃจ์ง์ค2์ฐจ@205/601 |
์์ ์ฃผ | ๊ฒฝ๊ธฐ๋์์์๋ง์๊ตฌ๋ฐ๋ฌ๋107๋ฒฝ์ฐ@101-1801 |
. . . . . . | . . . . . . |
๊ธฐํ๋ฏธ | ๋์ ์ ์ ์ฑ๊ตฌ ๋์ง๋ ํ๊ตญ์์๋ ฅ์์ ๊ธฐ์ ์ ํ์ ๋ถ์ฅ T.042-863-2820 |
๊นํฌํ | ์ธ์ฒ์ ๋ถํ๊ตฌ ์ญ์ 1๋ 323- 19ํธ |
SELECT
STUDENT_NAME
, STUDENT_ADDRESS
FROM TB_STUDENT
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
WHERE DEPARTMENT_NAME = (SELECT
DEPARTMENT_NAME
FROM TB_DEPARTMENT
JOIN TB_STUDENT USING(DEPARTMENT_NO)
WHERE STUDENT_NAME = '์ต๊ฒฝํฌ'
);
SELECT
STUDENT_NAME
, STUDENT_ADDRESS
FROM TB_STUDENT
WHERE DEPARTMENT_NO = (SELECT
DEPARTMENT_NO
FROM TB_STUDENT
WHERE STUDENT_NAME = '์ต๊ฒฝํฌ');
๐ฌ Overall Comment
* ๋๋ JOIN์ ๋จ์ฉํ๋ ๋ฒ๋ฆ์ด ์๋ ๊ฒ ๊ฐ๋ค. ๋์ฑ ํจ์จ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์งค ์ ์๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ
์ฐ๊ด๊ด๊ณ๋ฅผ ์ ์ดํดํ๊ณ ํ์ธํ ํ ์ฟผ๋ฆฌ๋ฌธ์ ์์ฑํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๊ฒ ๋ ๋ฌธํญ์ด์๋ค.
๐โ ๊ตญ์ด๊ตญ๋ฌธํ๊ณผ์์ ์ด ํ์ ์ด ๊ฐ์ฅ ๋์ ํ์์ ์ด๋ฆ๊ณผ ํ๋ฒ์ ํ์ํ๋ SQL ๋ฌธ์ ์์ฑํ์ธ์.
๐ฉ Example Output
1 row selected
STUDENT_NO | STUDENT_NAME |
---|---|
9931165 | ์ก๊ทผ์ฐ |
SELECT
STUDENT_NO
, STUDENT_NAME
FROM (SELECT
STUDENT_NO
, STUDENT_NAME
FROM TB_STUDENT
JOIN TB_DEPARTMENT USING(DEPARTMENT_NO)
JOIN TB_GRADE USING(STUDENT_NO)
WHERE DEPARTMENT_NAME = '๊ตญ์ด๊ตญ๋ฌธํ๊ณผ'
GROUP BY STUDENT_NO, STUDENT_NAME
ORDER BY AVG(POINT) DESC
)
WHERE ROWNUM = 1;
SELECT
STUDENT_NO
, STUDENT_NAME
FROM (SELECT
STUDENT_NO
, STUDENT_NAME
, AVG(POINT)
FROM TB_GRADE
JOIN TB_STUDENT USING(STUDENT_NO)
WHERE DEPARTMENT_NO = (SELECT
DEPARTMENT_NO
FROM TB_DEPARTMENT
WHERE DEPARTMENT_NAME = '๊ตญ์ด๊ตญ๋ฌธํ๊ณผ')
GROUP BY STUDENT_NO, STUDENT_NAME
ORDER BY AVG(POINT) DESC)
WHERE ROWNUM <= 1;
๐ฌ Overall Comment
* ํ์ ์ด ๊ฐ์ฅ ๋์ ํ์๋ง ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ด ์ด๋ค๊ฒ ์์๊น ๊ณ ๋ฏผํ๋ ์ค, ์ ๋ ฌ์ ์ค๋ฆ์ฐจ์์ผ๋ก
ํ ์ฟผ๋ฆฌ๋ฅผ ์๋ธ์ฟผ๋ฆฌ(์ธ๋ผ์ธ ๋ทฐ)๋ก ๊ฐ์ ธ์ ROWNUM์ 1๋ง ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ํ์ด๋ด๋ฉด ๋๊ฒ ๋ค๊ณ
์๊ฐํ๋ค. ์์ง ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ ์ฐํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ด๋ ต์ง๋ง ์ด๋ฐ ์์ผ๋ก ๊พธ์คํ ์ฌ์ฉํ๋ ๋ฒ์
ํฐ๋ํ๋ค๋ฉด ์ค๋ ฅ์ ๋๋ ํ ๋์ด๋ ๊ฒ์ด๋ค !
๐โ ์ถ ๊ธฐ์ ๋ํ๊ต์ "ํ๊ฒฝ์กฐ๊ฒฝํ๊ณผ"๊ฐ ์ํ ๊ฐ์ ๊ณ์ด ํ๊ณผ๋ค์ ํ๊ณผ ๋ณ ์ ๊ณต๊ณผ๋ชฉ ํ์ ์ ํ์ ํ๊ธฐ ์ํ ์ ์ ํ SQL ๋ฌธ์ ์ฐพ์๋ด์ธ์. ๋จ, ์ถ๋ ฅํค๋๋ "๊ณ์ด ํ๊ณผ๋ช ", "์ ๊ณตํ์ "์ผ๋ก ํ์๋๋๋ก ํ๊ณ , ํ์ ์ ์์์ ํ ์๋ฆฌ๊น์ง๋ง ๋ฐ์ฌ๋ฆผํ์ฌ ํ์๋๋๋ก ํฉ๋๋ค.
๐ฉ Example Output
20 rows selected
๊ณ์ด ํ๊ณผ๋ช | ์ ๊ณต ํ์ |
---|---|
๊ฐํธํ๊ณผ | 3.3 |
๋ฌผ๋ฆฌํ๊ณผ | 3.4 |
. . . . . . | . . . . . . |
ํ๊ฒฝ์์ฉ๊ณผํ๊ณผ | 3.5 |
ํ๊ฒฝ์กฐ๊ฒฝํ๊ณผ | 3.5 |
SELECT
DEPARTMENT_NAME "๊ณ์ด ํ๊ณผ๋ช
"
, ROUND(AVG(POINT), 1) "์ ๊ณต ํ์ "
FROM TB_DEPARTMENT
JOIN TB_STUDENT USING(DEPARTMENT_NO)
JOIN TB_GRADE USING(STUDENT_NO)
JOIN TB_CLASS USING(DEPARTMENT_NO)
WHERE CATEGORY = (SELECT -- ํ๊ฒฝ์กฐ๊ฒฝํ๊ณผ๊ฐ ์ํ ๊ณ์ด ์ฐพ๋ ์๋ธ ์ฟผ๋ฆฌ
CATEGORY
FROM TB_DEPARTMENT
WHERE DEPARTMENT_NAME = 'ํ๊ฒฝ์กฐ๊ฒฝํ๊ณผ'
)
AND CLASS_TYPE LIKE '์ ๊ณต%'
GROUP BY DEPARTMENT_NAME
ORDER BY 1;