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 위 함수를 이용해서 문제를 풀어보았는데 하드코딩이라 뭔가 만족스럽지않다... 다른 사람의 코드를 보기 전 내가 조금 더 생각해보자 코딩/SQL 코딩테스트 2022.06.06
36. Top Earners 이번엔 문제가 좀 길다. 총 봉급 1위와 그 사람이 몇명인지 구하면된다. 조금 오래전에 풀어서 기억이 좀 가물가물한데 서브쿼리로 맥스 값을 뽑고, count로 개수를 세면 될거같다. 흠.... 왜 earning을 썼지... 이건 좀 아닌거같다. 컬럼명을 바꾸는 것은 안되는 것으로 보인다. 아... 왜 틀렸을까.... 내가 제출한 답지를 보니깐 salary*months는 7개의 행이 있는데 count는 1개행이라 오류가 난것을 보인다... 보면서 틀린것을 이해하고 다음을으로 넘어가자!! 코딩/SQL 코딩테스트 2022.06.06
61. 조인4(SELF JOIN) 요약 1. SELF JOIN은 한 데이터에서 JOIN을한다 mgr 변수는 사원의 관리자를 알려주는 변수이다. 번호로 되어있는 mgr을 이용해서 관리자 이름으로 출력해보자 코딩/SQL 2022.06.06
60. 조인3(OUTER JOIN) 요약 1. 한쪽에만 존재하는 데이터를 보여주려면 (+)를 부족한 쪽에 작성해주면된다. 이번엔 EQUI JOIN에서 볼 수 없던 것도 출력해보자 지난번 EQUI에서는 BOSTON이 출력되지않았다. 왜냐하면 emp 데이터에서 보스턴에 해당되는 사람이 없었기 때문이다. EQUI JOIN에서 부족한 부분에 (+)를 추가해주면 된다. 코딩/SQL 2022.06.06
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
56. 출력 행 제한1(ROWNUM) 요약 1. 출력행은 ROWNUM으로 제한할 수 있다. 2. 다른 것도 있다. 행을 출력하는 방법은 ROWNUMD으로 제한할 수 있다. ROWNUM은 가려져있는 가짜 컬럼이라고한다. 그걸 불러와서 WHERE로 제한하면 원하는 행의 개수를 출력할 수 있다. 코딩/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