은행 다니는 하이디
close
프로필 배경
프로필 로고

은행 다니는 하이디

  • 분류 전체보기 (47)
    • 쓰면서 배우는 금융로그 (7)
    • 아웃풋이 안 나올 때는 인풋을 (5)
    • 근거 있는 일하기_SQL (33)
  • 홈
  • 태그
  • 글쓰기
조건절의 서브쿼리 (where, having)

조건절의 서브쿼리 (where, having)

SELECT 문장 안에 또 다른 SELECT 문장이 있는 경우를 서브쿼리라고 한다.서브쿼리는 대체로 서브쿼리를 먼저 실행하고 나서 그 결과값을 가지고 메인 쿼리를 돌린다.서브쿼리가 반환하는 결과의 형태에 따라 주의하며 사용할 점들이 있다.    1. 단일 행 서브쿼리 (= 스칼라 서브쿼리) SELECT * FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE location_id = 1800) ;위 문장에서 괄호 안의 SELECT문장만 먼저 실행하면 1행 1열의 '20' 이라는 값 하나를 반환한다. 그럼 메인쿼리에서 empl..

  • format_list_bulleted 근거 있는 일하기_SQL
  • · 2024. 5. 6.
  • textsms
OUTER JOIN 쓸 때 ON과 WHERE에 주는 조건 차이 주의

OUTER JOIN 쓸 때 ON과 WHERE에 주는 조건 차이 주의

LEFT OUTER JOIN을 진행할 때 이런 경우가 있다.모두 보여주고자 하는 쪽 (왼쪽) 에서1) 개인인 경우 : 개인고객정보에서 신용점수를 가져오고2) 법인인 경우 : 법인고객정보에서 기업등급을 가져오자 먼저 개인고객부터 JOIN해보자. ID_TYP이 1(개인)인 경우 개인고객정보(TPID)와 JOIN한다.이때 ID_TYP이 2인 경우 JOIN에 참여하지 않았기 때문에 SCORE 컬럼에는 NULL이 보이지만 OUTER JOIN이기 때문에 일단 TA에서 들어온 컬럼들은 다 들어와있다. 이제 두 테이블이 조인되었으니 법인쪽도 JOIN해보자 ID_TYP이 2(법인)인 경우에만 조인 결과를 들고오지만, 일단 OUTER JOIN의 근본 테이블인 TA의 행들은 없어지지 않고 그냥 나온다.   ID_TYP이 1..

  • format_list_bulleted 근거 있는 일하기_SQL
  • · 2024. 5. 4.
  • textsms

JOIN

CROSS JOIN테이블 두개를 올려놓고 아무 조건 주지 않고 그냥 실행하면, 두 테이블 사이에 나올 수 있는 모든 케이스가 다 행으로 들어온다.카다시안 곱의 결과가 모두 출력되는 셈. 오라클은 이 경우를 허용하나, ANSI구문에서는 CROSS JOIN이라고 명시해야만 결과를 내 준다. 실수하지 않게 하기 위한 방침인 셈.  CROSS JOIN의 경우 ON구문을 사용할 수 없다.조인의 요소를 찾아 주는 것이 의미가 없기 때문에. 보통 대용량 테스트데이터를 만들 때 사용한다고 한다.  INNER JOIN일반적으로 필요한 조인 방식. 양측 테이블에 공통으로 사용하고 있는 key (주로 PK - FK 관계)를 활용하여 적절하게 조인  주의같은 컬럼명이 양쪽 테이블에 있다면, table.column 으로 명명해..

  • format_list_bulleted 근거 있는 일하기_SQL
  • · 2024. 4. 20.
  • textsms
조건문_DECODE, CASE WHEN

조건문_DECODE, CASE WHEN

만약 사원들의 1년치 연봉을 알고 싶다면 SALARY 컬럼에 12를 곱하면 될 것이다. 그러나 직급에 따라 연봉 인상률을 달리 가져가고 싶다고 하면 그때는 어떡할 것인가? 그때 쓸 수 있는 것이 조건문이다. DECODE는 이렇게 생겼다. JOB ID가 이것이면, 이것을 하고, 저것이면, 저것을 하고... 하는 식으로 끊임없이 조건을 달다가, 이도저도 아니면, 이렇게 하자고 하고 괄호를 닫는다. SELECT last_name, job_id, salary ,DECODE(job_id, 'AD_VP' , salary * 1.3 , 'AC_MGR', salary * 1.25 , 'SA_REP', salary * 1.2 , salary * 1.1) AS NEW_SAL FROM employees ; 똑같은 결과를 C..

  • format_list_bulleted 근거 있는 일하기_SQL
  • · 2024. 4. 20.
  • textsms
오라클 날짜는 항상 시분초를 달고다닌다

오라클 날짜는 항상 시분초를 달고다닌다

오라클db의 경우 연/월/일/시/분/초 7바이트의 고정길이를 사용해서 시간값을 관리함 다만 날짜의 형식모델 세팅에 따라 어디까지 ‘보여질지’를 선택할 수 있음. 근데 그렇다고 시분초가 없는게아님    TO_DATE 없이 작은따옴표 안에 ‘2024/03/13’만 쓰면 그냥 문자열로 저장됨. 시분초 안붙은거보면 알수있음. 오라클에서 DATE는 무조건 시분초를 달고다님  기본적으로 MM이 지정이 안되어있으면 현재시점 월의 1월 1일을 불러옴 (OS에서 날짜 불러옴) . 지금이 4월13일이기 때문에 4월1일임 오라클DB에서 2자리로 연도를 표시하면 무조건 현재 세기를 불러옴. 그러니까 가급적이면 4자리 연도를 다 쓰시오 아니라면 RR 써도되긴하지만 네자리 다쓰는걸 추천

  • format_list_bulleted 근거 있는 일하기_SQL
  • · 2024. 4. 19.
  • textsms
ROLLUP

ROLLUP

만약 나는 '부서-직업' 묶음으로 급여합계도 궁금하고 부서별 급여합계도 궁금하고 그냥 전직원 급여합계도 궁금한데 이걸 한번에 보고싶다고 하면 왠지 이 문장들을 UNION ALL로 합치면 될 것 같다 SELECT DEPTNO, JOB, SUM(SAL) FROM EMP GROUP BY DEPTNO, JOB ; SELECT DEPTNO, SUM(SAL) FROM EMP GROUP BY DEPTNO ; SELECT SUM(SAL) FROM EMP ; 그러나 이렇게 하면 에러가 난다. 얘네 각각 실행하면 나오는 표 모양이 다 다른데 합치려니 자릿수가 달라서 결과를 못 내준다. 그럼 제일 큰 놈에 맞춰서 다른애들은 필요없는데에다가 null을 넣으면 된당. 오호라 이렇게 하니까 왠지 엑셀에서 만들어 둔 표 같다. 중..

  • format_list_bulleted 근거 있는 일하기_SQL
  • · 2024. 4. 19.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 8
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (47)
    • 쓰면서 배우는 금융로그 (7)
    • 아웃풋이 안 나올 때는 인풋을 (5)
    • 근거 있는 일하기_SQL (33)
최근 글
인기 글
최근 댓글
태그
  • #루블화폭락
  • #약관변경절차차이
  • #전자금융보조업자
  • #전자금융거래법뜯어보기
  • #카카오뱅크카카오페이차이
  • #여자는왜자신의성공을우연이라말할까
  • #전자금융거래법
  • #비즈니스모델캔버스쉽게
  • #도둑맞은집중력
  • #고객의불편을해결해가는금융기업들
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바