1. LISTAGG
LISTAGG는 중복제외(DISTINCT)를 지원하지 않으므로 애초에 중복제외한 테이블에서 불러온다.
-- LISTAGG는 중복제외(DISTINCT)를 지원하지 않으므로 애초에 중복제외한 테이블에서 불러온다.
SELECT LISTAGG(DRIVER_NM, ',') WITHIN GROUP (ORDER BY DRIVER_NM) AS DRIVER_NM
FROM (SELECT DISTINCT DRIVER_NM FROM DRIVER_INFO
2. 두 숫자를 입력받아 최대 공약수를 출력
ACCEPT P_N1 PROMPT '첫 번째 숫자 입력:'
ACCEPT P_N2 PROMPT '두 번째 숫자 입력:'
WITH NUM_D AS (SELECT &P_N1 AS NUM1, &P_N2 AS NUM2
FROM DUAL)
SELECT NUM1, NUM2, MAX(LEVEL) AS "최대공약수"
FROM NUM_D
WHERE MOD(NUM1, LEVEL) = 0
AND MOD(NUM2, LEVEL) = 0
CONNECT BY LEVEL <= NUM2;
3. 두 숫자를 입력받아 최소 공배수 출력
ACCEPT P_N1 PROMPT '첫 번째 숫자 입력:'
ACCEPT P_N2 PROMPT '두 번째 숫자 입력:'
WITH NUM_D AS (SELECT &P_N1 AS NUM1, &P_N2 AS NUM2
FROM DUAL)
SELECT NUM1, NUM2,
(NUM1/MAX(LEVEL))*(NUM2/MAX(LEVEL)) * MAX(LEVEL) AS "최소 공배수"
FROM NUM_D
WHERE MOD(NUM1, LEVEL) = 0
AND MOD(NUM2, LEVEL) = 0
CONNECT BY LEVEL <= NUM2;
4. 피타고라스의 공식으로 직각삼각형이 맞는지 출력
ACCEPT NUM1 PROMPT '밑변의 길이:';
ACCEPT NUM2 PROMPT '높이 :';
ACCEPT NUM3 PROMPT '빗변의 길이 :';
SELECT CASE WHEN
( POWER(&NUM1,2) + POWER(&NUM2,2) ) = POWER(&NUM3,2) --POWER 제곱함수
THEN '직각삼각형이 맞습니다.'
ELSE '직각삼각형이 아닙니다.' END AS "피타고라스의 정리"
FROM DUAL;
'🛠️Skill > SQL' 카테고리의 다른 글
[SQL 문제] 요일별 매출액, 최초/마지막 주문일, 요일별 매출액 평균 (0) | 2022.12.15 |
---|---|
[SQL문법] GROUP_CONCAT 그룹별 집계 (0) | 2022.12.14 |
[SQL 문제] UNPIVOT / 구구단 / 삼각형, 사각형 출력 / 숫자의 합, 곱, 짝수, 소수 출력 (0) | 2022.12.13 |
[oracle] 오라클 단축키 / 비밀번호 변경 (0) | 2022.12.12 |
[SQL문법] 날짜, 시간 더하기 (DATE_ADD, DATE_SUB) (0) | 2022.12.09 |
댓글