πββοΈ μμ΄μλ¬Ένκ³Ό(νκ³Όμ½λ 002) νμλ€μ νλ²κ³Ό μ΄λ¦, μ ν λ λλ₯Ό μ ν λ λκ° λΉ λ₯Έ μμΌλ‘ νμνλ SQL λ¬Έμ₯μ μμ±νμΈμ.
( λ¨, ν€λλ "νλ²", "μ΄λ¦", "μ νλ λ"λ‘ νμ)
π© Example Output
3 rows selected
νλ² | μ΄λ¦ | μ νλ λ |
---|---|---|
9973003 | κΉμ©κ·Ό | 99/03/01 |
A473015 | λ°°μ©μ | 04/03/01 |
A517105 | μ΄μ μ΄ | 05/03/01 |
SELECT
STUDENT_NO νλ²
, STUDENT_NAME μ΄λ¦
, ENTRANCE_DATE μ
νλ
λ
FROM TB_STUDENT
WHERE DEPARTMENT_NO = 002
ORDER BY 3;
πββοΈ μΆ κΈ°μ λνκ΅μ κ΅μ μ€ μ΄λ¦μ΄ μΈ κΈμκ° μλ κ΅μκ° λ λͺ μλ€κ³ ν©λλ€. κ·Έ κ΅μμ μ΄λ¦κ³Ό μ£Όλ―Όλ²νΈλ₯Ό νλ©΄μ μΆλ ₯νλ SQL λ¬Έμ₯μ μμ±ν΄ 보μΈμ.
π© Example Output
2 rows selected
PROFESSOR_NAME | PROFESSOR_SSN |
---|---|
κ°ν | 601004-1100528 |
λ°κ°μλ¦ | 681201-2134896 |
SELECT
PROFESSOR_NAME
, PROFESSOR_SSN
FROM TB_PROFESSOR
WHERE LENGTH(PROFESSOR_NAME) <> '3';
SELECT
PROFESSOR_NAME
, PROFESSOR_SSN
FROM TB_PROFESSOR
WHERE PROFESSOR_NAME NOT LIKE '___';
πββοΈ μΆ κΈ°μ λνκ΅μ λ¨μ κ΅μλ€μ μ΄λ¦κ³Ό λμ΄λ₯Ό μΆλ ₯νλ SQL λ¬Έμ₯μ μμ±νμΈμ. μ΄λ, λμ΄κ° μ μ μ¬λμμ λ§μ μ¬λ μμλ‘ νλ©΄μ μΆλ ₯λλλ‘ λ§λμΈμ.
(λ¨, κ΅μ μ€ 2000 λ μ΄ν μΆμμλ μμΌλ©° μΆλ ₯ ν€λλ "κ΅μμ΄λ¦", "λμ΄"λ‘ ν©λλ€. λμ΄λ βλ§βμΌλ‘ κ³μ°ν©λλ€.)
π© Example Output
75 rows selected
κ΅μμ΄λ¦ | λμ΄ |
---|---|
μ μμ² | 42 |
μ£Όμμ | 42 |
. . . . . . | . . . . . . |
μ μ§μ | 74 |
μ΄λν | 74 |
SELECT
PROFESSOR_NAME κ΅μμ΄λ¦
, FLOOR(MONTHS_BETWEEN(SYSDATE, TO_DATE(19 || SUBSTR(PROFESSOR_SSN, 1, 6), 'RRRRMMDD')) / 12) λμ΄
FROM TB_PROFESSOR
WHERE PROFESSOR_SSN LIKE '_______1%'
ORDER BY 2;
π¬ Overall Comment
* μ²μμ μ£Όλ―Όλ±λ‘λ²νΈ λ°μ΄ν°λ₯Ό κ°μ§κ³ μ΄λ»κ² λμ΄λ₯Ό ꡬν μ μμμ§ κ΅μ₯ν λ§μ κ³ λ―Όμ νλ€.
MONTHS_BETWEENμΌλ‘ νμ¬ λ μ§(SYSDATE)μμ μλ
μμΌμ μ°¨λ₯Ό ꡬνμ¬ λμ΄λ₯Ό ꡬν΄μΌ νλ€λ μ μ
μκ³ μμμΌλ, 'μ§μ ν μμ΄ λΆμ ν©ν©λλ€.'λ±μ μ€λ₯κ° λ°μνκ³ μ΄λ '19'λ₯Ό μμ λͺ
μν΄μ€μΌλ‘μ¨
ν΄κ²°λμλ€. 2000λ
λ μ΄μ μΆμμ κ΅μλ€μ΄λ―λ‘, 'RRRR'μ μ¬μ©νκ³ , κ²λ€κ° 1950λ
μ΄μ μ μΆμν
κ΅μλ€μ΄ μ‘΄μ¬νμΌλ―λ‘ 50μ΄νμ μλ 2000λ
λλ‘ μΈμνλ 'RRRR'μ νΉμ±μ κ³ λ €νμ¬ λ°λμ 19λ₯Ό μμ
λΆμ¬μ€¬μ΄μΌνλ€.
πββοΈ κ΅μλ€μ μ΄λ¦ μ€ μ±μ μ μΈν μ΄λ¦λ§ μΆλ ₯νλ SQL λ¬Έμ₯μ μμ±νμΈμ. μΆλ ₯ ν€λλ "μ΄λ¦"μ΄ μ°νλλ‘ ν©λλ€.
(λ¨, μ±μ΄ λ μμΈ κ²½μ°μ κ΅μλ μλ€κ³ κ°μ νμΈμ.)
π© Example Output
114 rows selected
μ΄λ¦ |
---|
μ§μ |
μ€ν |
. . . . . . |
ννΈ |
SELECT
SUBSTR(PROFESSOR_NAME, 2) μ΄λ¦
FROM TB_PROFESSOR;
πββοΈ μΆ κΈ°μ λνκ΅μ μ¬μμ μ νμλ₯Ό ꡬνλ €κ³ ν©λλ€. μ΄λ»κ² μ°ΎμλΌκΉμ?
μ΄λ, 19μ΄μ μ ννλ©΄ μ¬μλ₯Ό νμ§ μμ κ²μΌλ‘ κ°μ£Όν©λλ€.
(μΆλ ₯ ν€λλ "νλ²", "μ΄λ¦", "μ νν λμ΄" μ λλ€.)
π© Example Output
204 rows selected
νλ² | μ΄λ¦ | μ νν λμ΄ |
---|---|---|
A431016 | κ³ λ³ν | 20 |
A431021 | ꡬλ³ν | 20 |
. . . . . . | . . . . . . | . . . . . . |
A241053 | μ΄ν¬μ | 20 |
A241056 | μ΄ν¬μ§ | 20 |
SELECT
STUDENT_NO νλ²
, STUDENT_NAME μ΄λ¦
, FLOOR(MONTHS_BETWEEN(ENTRANCE_DATE, TO_DATE(SUBSTR(STUDENT_SSN, 1, 2), 'RR')) / 12) "μ
νν λμ΄"
FROM TB_STUDENT
WHERE FLOOR(MONTHS_BETWEEN(ENTRANCE_DATE, TO_DATE(SUBSTR(STUDENT_SSN, 1, 2), 'RR')) / 12) > 19;
SELECT
STUDENT_NO
, STUDENT_NAME
, EXTRACT(YEAR FROM ENTRANCE_DATE) - EXTRACT(YEAR FROM (TO_DATE(SUBSTR(STUDENT_SSN, 1, 2), 'RR'))) "μ
νν λμ΄"
FROM TB_STUDENT
WHERE EXTRACT(YEAR FROM ENTRANCE_DATE) - EXTRACT(YEAR FROM (TO_DATE(SUBSTR(STUDENT_SSN, 1, 2), 'RR'))) > 19;
π Ref.
* EXTRACT : λ
, μ, μΌ μ 보λ₯Ό μΆμΆνμ¬ λ¦¬ν΄νλ ν¨μ
π¬ Overall Comment
* μ΄ λ¬Έν λν κ΅μ₯ν μκ°μ μꡬνλ€. μ²μμλ κ΅μμ λ§ λμ΄λ₯Ό ꡬνλ λ¬Ένμ μ°Έκ³ νμ¬ μμ©νλ©΄ λκ² λ€κ³
μκ°νμΌλ, μ΄ λ¬Ένμμλ 19μ΄ μ΄κ³Όμ λμ΄μ μ
νν μ¬μμμ ꡬν΄μΌνκΈ° λλ¬Έμ μ‘°κΈ λ€λ₯Έ λ°©μμΌλ‘
μ κ·Όν΄μΌνλ€.
μ
ν λ
λμ μλ
μ μ°¨λ₯Ό ꡬν λ€, κ·Έκ²μ΄ 19λ₯Ό μ΄κ³Όνλ©΄ μ¬μμμ΄λΌλ 쿼리λ₯Ό μ§μΌνλλ°, μ²μμ λ΄λ¦Όμ²λ¦¬λ₯Ό
νμ§μμ μΆλ ₯λλ νμ κ°―μκ° λ λ§μκ°νλ©΄ κ°κΉμ€λ‘ μλ§μ νμ κ°―μκ° λμμ§λ§ λμ΄μ λ²μκ° μ΄ν΄κ°
λμ§μμμλ€.
μ μΆμ νκ³ λ λ€μλ κ³μν΄μ 무μμ΄ λ¬Έμ μΈμ§ νμΈν΄λ³Έ κ²°κ³Ό, λ©μΈ 리μ¦μ λμ΄λ₯Ό FLOORλ‘ λ΄λ¦Όμ²λ¦¬ν΄μΌνκ³
λ°λΌμ 19μ΄κ³Ό 20μ΄νμ λ²μ(μ μ΄λ κ² νμ λ 204νμ΄ λμλμ§ μμ§λ μ΄ν΄λΆκ°)κ° μλ κ·Έμ 19μ΄κ³Όμ
λ²μλ§ μ§μ ν΄μ£Όλ©΄ λλ κ²μ΄μλ€.
* λν EXTRACTμ νμ©νμ¬ λμ΄λ₯Ό ꡬνλ λ°©λ²λ μλ€λ κ²μ μκ²λμ΄ κ΅μ₯ν κ°μ§ λ¬Ένμ΄μλ€.
πββοΈ 2020λ ν¬λ¦¬μ€λ§μ€λ λ¬΄μ¨ μμΌμΌκΉμ?
π© Example Output
1 rows selected
TO_CHAR(TO_DATE('201225', 'YYMMDD'), 'DAY') |
---|
κΈμμΌ |
SELECT
TO_CHAR(TO_DATE('201225', 'YYMMDD'), 'DAY')
FROM DUAL;
π Ref.
* TO_CHAR : TO_CHAR(λ μ§, 'DAY') λ₯Ό νμ©νλ©΄ ν΄λΉ λ μ§μ μμΌμ μ μ μμ
πββοΈ TO_DATE('99/10/11','YY/MM/DD'), TO_DATE('49/10/11','YY/MM/DD') μ κ°κ° λͺ λ λͺ μ λͺ μΌμ μλ―Έν κΉμ?
λν TO_DATE('99/10/11','RR/MM/DD'), TO_DATE('49/10/11','RR/MM/DD') μ κ°κ° λͺ λ λͺ μ λͺ μΌμ μλ―Έν κΉμ?
π© Example Output
1 rows selected
('99/10/11','YY/MM/DD') | ('49/10/11','YY/MM/DD') | ('99/10/11','RR/MM/DD') | ('49/10/11','RR/MM/DD') |
---|---|---|---|
2099λ 10μ 11μΌ | 2049λ 10μ 11μΌ | 1999λ 10μ 11μΌ | 2049λ 10μ 11μΌ |
SELECT
TO_CHAR(TO_DATE('99/10/11','YY/MM/DD'), 'YYYY"λ
"MM"μ "DD"μΌ"') "('99/10/11','YY/MM/DD')"
, TO_CHAR(TO_DATE('49/10/11','YY/MM/DD'), 'YYYY"λ
"MM"μ "DD"μΌ"') "('49/10/11','YY/MM/DD')"
, TO_CHAR(TO_DATE('99/10/11','RR/MM/DD'), 'RRRR"λ
"MM"μ "DD"μΌ"') "('99/10/11','RR/MM/DD')"
, TO_CHAR(TO_DATE('49/10/11','RR/MM/DD'), 'RRRR"λ
"MM"μ "DD"μΌ"') "('49/10/11','RR/MM/DD')"
FROM DUAL;
πββοΈ μΆ κΈ°μ λνκ΅μ 2000 λ λ μ΄ν μ νμλ€μ νλ²μ΄ A λ‘ μμνκ² λμ΄μμ΅λλ€. 2000λ λ μ΄μ νλ²μ λ°μ νμλ€μ νλ²κ³Ό μ΄λ¦μ 보μ¬μ£Όλ SQL λ¬Έμ₯μ μμ±νμΈμ.
π© Example Output
52 rows selected
STUDENT_NO | STUDENT_NAME |
---|---|
9556017 | μμ±μ² |
9732111 | μ μλ ¬ |
. . . . . . | . . . . . . |
9911206 | μμΆ©ν |
SELECT
STUDENT_NO
, STUDENT_NAME
FROM TB_STUDENT
WHERE STUDENT_NO NOT LIKE '%A%';
πββοΈ 9. νλ²μ΄ A517178 μΈ νμλ¦ νμμ νμ μ΄ νμ μ ꡬνλ SQL λ¬Έμ μμ±νμΈμ.
λ¨, μ΄λ μΆλ ₯ νλ©΄μ ν€λλ "νμ " μ΄λΌκ³ μ°νκ² νκ³ , μ μλ λ°μ¬λ¦Όνμ¬ μμμ μ΄ν ν μ리κΉμ§λ§ νμνμΈμ.
π© Example Output
1 rows selected
νμ |
---|
3.6 |
SELECT
ROUND(AVG(POINT), 1) νμ
FROM TB_GRADE
WHERE STUDENT_NO = 'A517178'
GROUP BY STUDENT_NO;
πββοΈ νκ³Όλ³ νμμλ₯Ό ꡬνμ¬ "νκ³Όλ²νΈ", "νμμ(λͺ )" μ ννλ‘ ν€λλ₯Ό λ§λ€μ΄ κ²°κ³Όκ°μ΄ μΆλ ₯λλλ‘ νμΈμ.
π© Example Output
62 rows selected
νκ³Όλ²νΈ | νμμ(λͺ ) |
---|---|
001 | 14 |
002 | 3 |
. . . . . . | . . . . . . |
062 | 8 |
SELECT
DEPARTMENT_NO "νκ³Όλ²νΈ"
, COUNT(DEPARTMENT_NO) "νμμ(λͺ
)"
FROM TB_STUDENT
GROUP BY DEPARTMENT_NO
ORDER BY 1;
πββοΈ μ§λ κ΅μλ₯Ό λ°°μ λ°μ§ λͺ»ν νμμ μλ λͺ λͺ μ λ λλμ§ μμλ΄λ SQL λ¬Έμ μμ±νμΈμ.
π© Example Output
1 rows selected
COUNT(*) |
---|
9 |
SELECT
COUNT(*)
FROM TB_STUDENT
WHERE COACH_PROFESSOR_NO IS NULL
GROUP BY COACH_PROFESSOR_NO;
πββοΈ νλ²μ΄ A112113 μΈ κΉκ³ μ΄ νμμ λ λ λ³ νμ μ ꡬνλ SQL λ¬Έμ μμ±νμΈμ.
λ¨, μ΄λ μΆλ ₯ νλ©΄μ ν€λλ "λ λ", "λ λ λ³ νμ " μ΄λΌκ³ μ°νκ² νκ³ , μ μλ λ°μ¬λ¦Όνμ¬ μμμ μ΄ν ν μ리κΉμ§ν νμν©λλ€.
π© Example Output
5 rows selected
λ λ | λ λ λ³ νμ |
---|---|
2001 | 2.8 |
2002 | 2.3 |
2003 | 4 |
2004 | 3.5 |
3.2 |
SELECT
SUBSTR(TERM_NO, 1, 4) λ
λ
, ROUND(AVG(POINT), 1) "λ
λ λ³ νμ "
FROM TB_GRADE
WHERE STUDENT_NO = 'A112113'
GROUP BY ROLLUP(SUBSTR(TERM_NO, 1, 4));
πββοΈ νκ³Ό λ³ ν΄νμ μλ₯Ό νμ νκ³ μ ν©λλ€. νκ³Ό λ²νΈμ ν΄νμ μλ₯Ό νμνλ SQL λ¬Έμ₯μ μμ±νμΈμ.
π© Example Output
62 rows selected
νκ³Όμ½λλͺ | ν΄νμ μ |
---|---|
001 | 2 |
002 | 0 |
. . . . . . | . . . . . . |
062 | 2 |
SELECT
DEPARTMENT_NO νκ³Όμ½λλͺ
, COUNT(DECODE(ABSENCE_YN, 'Y', 'μ‘°μ΄')) "ν΄νμ μ"
FROM TB_STUDENT
GROUP BY (DEPARTMENT_NO)
ORDER BY 1;
π¬ Overall Comment
* μ²μμλ COUNT(ABSENCE_YN)λ‘ μμ±νκ³ HAVINGμ μ ABSENCE_YN = 'Y'λ‘ κ·Έλ£Ήμ 쑰건μ κ±Έμ΄ μ€ννλ€.
νμ§λ§ ν΄νμ μκ° μλ 002 λ±μ νκ³Όμ½λλ€μ΄ μΆλ ₯ μμ²΄κ° λμ§ μμκ³ μ΄λ»κ²λ μΆλ ₯νλ € λ€λ₯Έ 쑰건λ
κ±Έμ΄λ³΄κ³ NULLκ°μ ν¬ν¨μν€λ COUNT(*)λ‘ μ¬μ©ν΄λ³΄κΈ°λ νλ€.
νμ§λ§ κ²°κ΅ λ μνΌλ₯Ό μ°Έκ³ νμ¬ HAVINGμ μ΄ μλ DECODEλ₯Ό μ΄μ©ν΄μ ν΄νμ('Y')λ§μ 'μ‘°μ΄'λΌλ κ°μ
κ°λλ‘ νκ³ (λ¬΄μ¨ κ°μ΄ λ€μ΄κ°λ μκ΄X) μ¬νμ('N')μ NULL κ°μ κ°λλ‘ νλ€. λλ¬Έμ NULLκ°μ μ μΈν
κ°―μλ₯Ό μΈλ COUNT(컬λΌλͺ
)μ ν΄νμ μλ§ μΉ΄μ΄νΈνμ¬ μΆλ ₯νλ€.
ν¨μλ€μ΄ μ λ§λ€ κ΅μ₯ν λ€μν κΈ°λ₯λ€μ κ°μΆκ³ μλλ°, μ΄λ₯Ό κΈ°μ΅νκ³ μ λ§ μ νμ©ν΄μΌκ² λ€κ³ μκ°ν
κ³κΈ°κ° λμλ€. νΉν DECODEμ κΈ°λ₯μ μ΄μ©ν μ λΆλΆμ΄ κ΅μ₯ν μΈμκΉκ³ κΌ λ΄ κ²μΌλ‘ λ§λ€μ΄μ μ¬μ©ν΄λ³΄κ³ μΆλ€.
πββοΈ μΆ λνκ΅μ λ€λλ λλͺ μ΄μΈ νμλ€μ μ΄λ¦μ μ°Ύκ³ μ ν©λλ€. μ΄λ€ SQL λ¬Έμ₯μ μ¬μ©νλ©΄ κ°λ₯ν κΉμ?
π© Example Output
20 rows selected
λμΌμ΄λ¦ | λλͺ μΈ μ |
---|---|
κΉκ²½λ―Ό | 2 |
κΉλͺ μ² | 2 |
. . . . . . | . . . . . . |
μ‘°κΈ°ν | 2 |
μ΅ν¨μ | 2 |
SELECT
STUDENT_NAME λμΌμ΄λ¦
, COUNT(STUDENT_NAME) "λλͺ
μΈ μ"
FROM TB_STUDENT
GROUP BY STUDENT_NAME
HAVING COUNT(STUDENT_NAME) NOT IN 1
ORDER BY 1;
SELECT
STUDENT_NAME AS λμΌμ΄λ¦
, COUNT(*) AS "λλͺ
μΈ μ"
FROM TB_STUDENT
GROUP BY STUDENT_NAME
HAVING COUNT(*) > 1
ORDER BY 1;
πββοΈ νλ²μ΄ A112113μΈ κΉκ³ μ΄ νμμ λ λ, νκΈ° λ³ νμ κ³Ό λ λ λ³ λμ νμ , μ΄ νμ μ ꡬνλ SQL λ¬Έμ μμ±νμΈμ.
(λ¨, νμ μ μμμ 1 μ리κΉμ§λ§ λ°μ¬λ¦Όνμ¬ νμν©λλ€.)
π© Example Output
14 rows selected
λ λ | νκΈ° | νμ |
---|---|---|
2001 | 01 | 2.5 |
2001 | 02 | 3 |
2001 | 2.8 | |
. . . . . . | . . . . . . | . . . . . . |
2004 | 01 | 4 |
2004 | 02 | 3 |
2004 | 3.5 | |
3.2 |
SELECT
SUBSTR(TERM_NO, 1, 4) λ
λ
, SUBSTR(TERM_NO, 5, 2) νκΈ°
, ROUND(AVG(POINT), 1) νμ
FROM TB_GRADE
WHERE STUDENT_NO = 'A112113'
GROUP BY ROLLUP(SUBSTR(TERM_NO, 1, 4), SUBSTR(TERM_NO, 5, 2))
ORDER BY 1;