본문 바로가기

전체 글123

[Oracle] 데이터 분석 - 등급 출력 (NTILE) 데이터 분석 - 등급 출력 (NTILE) : 비율 기준 등급 출력 SELECT column1, column2, column3 NTILE(5) OVER (ORDER BY column3 DESC NULLS LAST) as nickname FROM tablename WHERE column2 IN('KOREA', 'USA', 'GERMANY'); : column3를 5등급(비율)으로 나누어 등급 출력 * NULLS LAST : NULL 값을 마지막으로 정렬 2020. 9. 8.
[Oracle] 데이터 분석 - 순위 출력 (DENSE_RANK) 데이터 분석 - 순위 출력 (DENSE_RANK) : 상세한 순위 출력 SELECT column1, column2, column3, RANK() over (ORDER BY column3 DESC) as RANK, DENSE_RANK() over (ORDER BY column3 DESC) as DENSE_RANK FROM tablename WHERE column2 IN('KOREA', 'USA'); : DENSE_RANK는 순위가 겹쳐도 다음 순위로 출력 ex: 1,2,2,3,4,5 SELECT column1, column2, column3, DENSE_RANK() OVER (PARTITION BY column1 ORDER BY column2 DESC) as nickname FROM tablename WH.. 2020. 9. 8.
[Oracle] 데이터 분석 - 순위 출력 (RANK) 데이터 분석 - 순위 출력 (RANK) SELECT column1, column2, column3 RANK() OVER (OREDER BY column3 DESC) as nickname FROM tablename WHERE column2 IN('KOREA', 'USA'); : RANK() over (SQL) - SQL = 출력하고자 하는 데이터 정렬 SQL 입력 : 해당 컬럼 값의 데이터 순위 출력 - 순위가 같을 경우 중복표현 : ex: 1,2,2,4,5 SELECT column1, column2, column3, RANK() OVER (PARTITION BY column3 ORDER BY column2 DESC) as nickname FROM tablename; : PARTITION BY column.. 2020. 9. 8.
[Oracle] 개수 출력 (COUNT) 개수 출력 (COUNT) : 데이터 개수를 출력 기본 SELECT COUNT(column1) FROM tablename; : column1의 개수를 출력함 - 그룹함수는 NULL값을 무시하기 때문에 데이터가 NULL일 경우 count 되지않음 2020. 9. 7.
[Oracle] 합계 출력 (SUM) 합계 출력 (SUM) : 숫자 데이터의 합계 출력 SELECT column1, SUM(column2) FROM tablename GROUP BY column1; : column1으로 묶고 column2의 합계를 출력함 SELECT column1, SUM(column2) FROM tablename GROUP BY column1 ORDER BY SUM(column2) DESC; : column1 으로 묶고, SUM(column2) 기준 내림차순 정렬 SUM() 조건 오류 SELECT column1, SUM(column2) FROM tablename WHERE SUM(column2) >= 1000 GROUP BY column1; : 조건(WHERE)절에는 그룹함수가 허용되지 않음. - 그룹함수의 조건절은 HA.. 2020. 9. 7.
[Oracle] 평균값 출력 (AVG) 평균값 출력 (AVG) 기본 SELECT AVG(column1) FROM tablename; : column1이 NULL이 아닌 값을 모두 더한 후 NULL이 아닌 개수로 나눔 = NULL값은 산식에 포함되지 않음 NULL값 치환 SELECT ROUND(AVG(NVL(column1, 0))) FROM tablename; : column1이 NULL인 경우 0으로 바꾼 후 평균 값을 구함 2020. 9. 7.
[Oracle] 최소값 출력 (MIN) 최소값 출력 (MIN) SELECT MIN(column1) FROM tablename WHERE column2='KOREA'; : column2가 'KOREA' 일 때 column1의 최소값 출력 SELECT column1, MIN(column2) as nickname FROM tablename GROUP BY column1 ORDER BY nickname DESC; : column1으로 묶고 nickname 기준 내림차순 정렬 - ORDER BY 절은 항상 맨 마지막에 작성하고 맨 마지막에 실행됨 함수의 조건문 SELECT MIN(column1) FROM tablename WHERE 100=200; : 100!=200 이지만, 그룹함수는 조건이 거짓이어도 항상 결과를 출력함 -> 결과 NULL NULL.. 2020. 9. 7.
[Oracle] 최대값 출력 (MAX) 최대값 출력 (MAX) SELECT MAX(column1) FROM tablename; : column1의 최대값을 출력함 SELECT MAX(column1) FROM tablename WHERE column2='KOREA'; : column2가 'KOREA'인 경우 column1의 최대값을 출력 사용 주의 SELECT column1, MAX(column2) FROM tablename WHERE column1='KOREA'; : column1의 값이 여러 개, column2는 하나를 출력하기 때문에 오류가 발생함 SELECT column1, MAX(column2) FROM tablename WHERE column1='KOREA' GROUP BY column1; : GROUP BY 를 이용해 묶어 주어야 .. 2020. 9. 7.
[Oracle] IF문 SQL구현 (CASE) IF문 SQL구현 (CASE) : SQL로 IF문 구현 - 등호(=)와 부등호(,=) 모두 비교 가능 사용 예시 SELECT column1, column2, column3, CASE WHEN column3 >= 5000 THEN 1000 WHEN column3 >= 3000 THEN 500 WHEN column3 >= 1000 THEN 100 ELSE 0 END AS nickname FROM tablename WHERE column2 IN('KOREA', 'USA'); : column2가 'KOREA', 'USA'일 때, column3가 5000 이상이면 1000, 5000보다 작고 3000 이상이면 500, 3000 보다 작고 1000 이상이면 100, 나머지는 0을 nickname에 출력 IF문 표현.. 2020. 9. 6.