전체 글 171

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

53. 집계 결과 출력2(CUBE)

요약 1. 다른 집계결과 출력방법으로는 CUBE가 있다. 2. ROLLUP과 코드의 구성은 같지만 반대로 출력해준다. ROLLUP말고 집계 결과를 출력하는 다른 방법을 배워보자 이번엔 CUBE이다. 코드는 ROLLUP과 동일하게 GROUP BY에 작성해주면된다. 하지만 출력되는 결과는 다르다. 총합이 가장 먼저 나오고 그 다음에 각 결과가 순서대로 출력된다. ROLLUP과 반대로 출력된다고 생각하면 이해하기 쉽다.

코딩/SQL 2022.06.04

44. 순위의 비율 출력(CUME_DIST)

누적 비율을 뽑아보자 ROUND로 소수점 비율을 보기쉽게 해주자 공동 순위가 있을때 누적비율은 순위가 높게 된다. (공동 2위가 2명이면 3등 비율로 출력됨) 마찬가지로 PARTITION BY 함수 적용이 가능하다. 점점 함수의 개수가 많아진다... 모두 기억하는 것은 어렵지만 익숙해지는 것은 계속되는 연습으로 가능하다고 생각한다. 꾸준히 연습해보면서 해보자

코딩/SQL 2022.06.03

42. 순위출력2(DENSE_RANK)

요약 RANK 함수는 공동순위를 포함해서 산출되었다(1위가 두명이면 그 다음은 3위) DENSE_RANK는 공동순위를 고려하지않고 산출한다.(1위가 중복이라도 그 다음은 2위) 4번째행에 있는 JONES를 보면 순위 차이가 있다. RANK 함수와 마찬가지로 DENSE_RANK도 PARTITION BY 함수 적용이 가능하다. 이번엔 특정 데이터의 순위를 보는 것을 배워보자 원래 데이터의 순위를 출력하는 것이 RANK() OVER ~~ 이었다면 특정데이터의 순위는 RANK(특정 데이터) WITHIN GROUP ~~ 으로 작성해주면된다,

코딩/SQL 2022.06.03

41. 순위 출력(RANK)

요약 1. 순위는 RANK() OVER를 사용 2. 공동 순위를 고려해서 나옴(1등이 두명이면 그 다음은 3등) 3. 괄호 안을 조정해서 원하는 RANK를 출력할 수 있다.(직업별.. 등등) 순위를 출력해보자 RANK() OVER(ORDER BY 변수 DESC)로 순서를 출력할 수 있다. 괄호안은 용도에 맞게 변경해서 사용할 수 있다. 아래와 같이 PARTITION BY job을 추가하여 직업별로 나누어서 순서를 뽑을 수도 있다.

코딩/SQL 2022.06.02

40. 건수 출력하기(COUNT)

요약 1. 개수, 건수 출력은 COUNT 2. 결측치를 제외하고 개수를 세준다 데이터의 개수를 세주는 COUNT를 배워보자 아래와 같이 emp 데이터 셋은 14개의 데이터가 있다. 따라서 개수를 출력했을때 14개가 나온다. 하지만 COUNT는 결측치를 제외하고 개수를 세준다. 결측치가 포함된 comm 변수는 4개만 출력된다. 따라서 전체 데이터의 개수를 정확하게 파악하고 싶으면 COUNT(*) 결측치를 제외한 개수를 알고싶으면 COUNT(변수)를 사용하자

코딩/SQL 2022.06.02