전체 글 178

62. 조인5(ON절)

앞서 배운 조인은 오라클 조인이라고한다 오라클 조인 : EQUI JOIN, NON EQUI JOIN, OUTER JOIN, SELF JOIN 이제는 STANDARD 조인 방법을 배워보자 책에서는 오라클 조인이 많이 사용된다고 하지만 다른사람의 코드를 이해하고, 유연한 코드 작성을 위해 배워보자 문법은 JOIN ~~ ON을 사용하면 된다. JOIN 뒤에 합쳐질 데이터 테이블, ON 뒤에 연결이 되는 KEY를 작성하면 된다.

코딩/SQL 2022.06.07

37. Type of Triangle

이젠 문제가 좀 길어졌다. 문제는 간단하다. 세 변이 주어졌고 이걸로 구성된 삼각형이 어떤 삼각형인지 출력하면된다. CASE 함수로 문제를 풀어보자 CASE WHEN ~~ THEN ~~ IF문이 아직 다듬어지지않았다. A,B,C가 점점 커질때만 맞는 코드이다. 그래서 모든 경우를 포괄하는 형식으로 바꿨다. CASE WHEN ~~ THEN ~~ WHEN ~~ THEN ~~ ELSE ~~ END 위 함수를 이용해서 문제를 풀어보았는데 하드코딩이라 뭔가 만족스럽지않다... 다른 사람의 코드를 보기 전 내가 조금 더 생각해보자

36. Top Earners

이번엔 문제가 좀 길다. 총 봉급 1위와 그 사람이 몇명인지 구하면된다. 조금 오래전에 풀어서 기억이 좀 가물가물한데 서브쿼리로 맥스 값을 뽑고, count로 개수를 세면 될거같다. 흠.... 왜 earning을 썼지... 이건 좀 아닌거같다. 컬럼명을 바꾸는 것은 안되는 것으로 보인다. 아... 왜 틀렸을까.... 내가 제출한 답지를 보니깐 salary*months는 7개의 행이 있는데 count는 1개행이라 오류가 난것을 보인다... 보면서 틀린것을 이해하고 다음을으로 넘어가자!!

59. 조인2(NON EQUI JOIN)

요약 1. 범위 안에 있는 데이터와 연결하고싶으면 BETWEEN 2. 조금 어려워진다... 여러 테이블의 데이터를 조인하는 것 중 이번엔 NON EQUI JOIN이다. 앞으로 몇가지 조인 방법을 배우는데 익숙해져보자 EQUI JOIN에서는 같은 데이터를 엮어서 표현했다. 하지만 이번엔 같은 변수가 없다. 그러나 salgrade의 losal, hisal 사이에 있다. 이 사이의 값을 가져와서 출력해보자 그건 BETWEEN 함수로 가능하다. WHERE A BETWEEN B AND C 이면 A는 B,C 사이이의 값과 동일하다고 표시된다. 아래 예시는 봉급의 등급을 표현하는 것이다. emp의 sal은 salgrade의 losal과 hisal 사이에 있다고 생각하면 된다.

코딩/SQL 2022.06.06

58. 여러 테이블의 데이터를 조인하기(EQUI JOIN)

요약 1. 여러 테이블을 조인하는 것 중 =을 사용하는 것을 EQUI JOIN이라고 한다. 2. 두 데이터 셋을 병합해서 할 수있지만 몇가지 주의사항을 기억하자 서로 다른 테이블에 있는 컬럼들을 한번에 출력하려면 JOIN을 사용해야한다. WHERE에서 서로의 공통 KEY를 알려주면 간단하게 출력된다. WHERE절에 조건을 더 추가할 수 있다. emp 데이터 중 job이 ANALYST인 자료를 출력한다. -------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------..

코딩/SQL 2022.06.06

57. 출력 행 제한2(Simple TOP-n Queries)

요약 1. FETCH FIRST ~~ 로 출력되는 행을 정할 수 있다. 2. 퍼센트, 시작되는 행 선택(OFFSET) 등 다양한 기능이 많다. 3. ROWNUM보다 더 기능이 많다. 아래와 같이 4개의 행을 출력할 수 있다. 아래와 같이 ROWNUM을 쓰면 ROWNUM을 먼저 실행해서 SAL에 따른 정렬이 되지 않고 진행이된다. 퍼센트로 상위 부분을 출력할 수 있다. 동점자도 같이 출력할 수 있다. 만약 WITH TIES를 ONLY로 썼다면 2행만 출력되었을 것이다. 출력되는 행을 선정할 수도 있다. 아래 예시는 3번째 행부터 출력한다(1~2행은 제외) 다음과 같이 OFFSET과 FETCH FIRST를 묶어서 원하는 것 표현이 가능하다.

코딩/SQL 2022.06.05

54. 집계 결과 출력3(GROUPING SETS)

요약 1. GROOUPING SETS도 집계 결과 출력이 된다. 2. ROLLUP, CUBE보다 훨씬 기능도 많아서 가장 유용해보인다. 다른 집계 결과 출력을 해보자 이번은 GROUPING SETS이다. 이것의 다른 점은 앞에 ROLLUP, CUBE는 이중, 3중으로 필터가 되어 집계 결과를 출력했다. 이번엔 독립적으로 집계 결과를 보여줄 수 있는 함수이다. 아래 예시를 보면 deptno, job, 전체 순서로 출력해 준다. 물론 ROLLUP, CUBE에 있는 여러가지 변수를 조합한 총계 집계도 가능하다. 괄호안에 여러 변수를 넣으면 출력이 된다. 기능도 다양하고 간단해서 GROUPING SETS로 ROLLUP, CUBE를 대신하는 것이 편해보인다.

코딩/SQL 2022.06.04