[함수] 1 일 1 함수 : ROLLUP의 쓰임
·
데이터베이스/oracle
ROLLUP 함수는 GROUP BY 절에서 사용하는 함수로, ROLLUP 함수의 인자로 쓰인 컬럼들의 소계, 총계를 구할 수 있다.ROLLUP함수를 쓰면첫번째 인자(상품 ID)별 두번째 인자(월) + 첫번째 인자(상품 ID)별 두번째 인자(월)의 소계(SUBTOTAL) + 총계(GRAND TOTAL)의 결과가 나온다.ROLLUP 함수는 인자의 순서에도 영향을 받기 때문에, 순서가 바뀐다면 결과도 바뀌게 된다.아까와는 반대로첫번째 인자(월)별 두번째 인자(상품 ID) + 첫번째 인자(월)별 두번째 인자(상품ID)의 소계(SUBTOTAL) + 총계(GRAND TOTAL)의 결과가 나온다. 이렇듯 ROLLUP 함수는 인자별 소계, 총계를 내기 때문에 아래의 쿼리에서는 전혀 다른 결과가 나오게 된다.  SELE..
[함수] 1 일 1 함수 : 그룹 내 순위를 매기는 함수(RANK, DENSE_RANK, ROW_NUMBER)
·
데이터베이스/oracle
그룹 내 순위를 매기는 함수에는 RANK, DENSE_RANK, ROW_NUMBER가 있다. 각각 특징을 비교하여 어떤 경우에 쓰이는 지 알아보았다. ROW_NUMBER()SELECT     employee_id,     salary,     ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS row_numFROM     employees; 이 예시에서는 각 부서별로 사원을 연봉에 따라 순위를 매기는 경우이다. employees 테이블에서 각 사원의 연봉을 내림차순으로 순위를 매긴다. PARTITION BY 절은 부서별로 분할하여 순위를 매기고, ORDER BY 절은 연봉을 기준으로 순위를 부여한다. RANK()SELECT    ..
[정처기 실기 준비] 깨알 C언어 특강 1강~ 5강 요약
·
cs/C
정보처리기사 실기 응시 전 C언어 기초 강의를 수강하면서, 배운 내용을 간단히 정리해보려고 한다.1강. 프로그래밍이란? 프로그래밍을 접해보지 않아도 프로그래밍의 기본 순서를 알면 이 문제를 풀 수 있다.선언 ㄷ => 입력 ㅁ => 입력  ㄱ(입력받는 함수) => 처리 ㄴ => 출력 ㄹ 2강. 컴파일러 & 인터프리터컴파일러와 인터프리터를 이해하려면컴파일러 => 책 통번역인터프리터 =>실시간 통역으로 이해하면 쉽다. 한번 컴파일을 할 때 오래 걸리지만 컴파일 후  exe 파일이 생기면, 다시 번역하는 과정이 필요없는것이고=> java, c 등등한 줄씩 바로바로 번역하고 실행하는 인터프리터 언어는 실행속도가 빠르지만 매 번 실행과정을 거쳐야 함 => RUBY, php, javaScript3강.변수변수는 뭐 딱..
[프로그래머스][SQL][ORACLE] lv 3 카테고리 별 도서 판매량
·
코테/sql
SELECT B.CATEGORY, SUM(S.SALES) AS TOTAL_SALESFROM BOOK BINNER JOIN BOOK_SALES SON B.BOOK_ID = S.BOOK_IDWHERE TO_CHAR(S.SALES_DATE, 'YYYY-MM' ) LIKE '2022-01'GROUP BY B.CATEGORYORDER BY CATEGORY ASC누워서 쓰니까 너무 힘들다
[프로그래머스][java] lv 0 공 던지기
·
코테/java
1. 문제 설명2. 나의 풀이class Solution { public int solution(int[] numbers, int k) { int index = 0; for (int i = 0; i  이거 소스만 보면 별거 아닌데 너무 어렵게 풀었다.. 1. 시작점이 1 이므로 (0번째 공을 던질 수는 없음) k-1 회 후 도착한 인덱스를 찾아야함2. 현재 인덱스 = (현재 인덱스 + 이동량(2)) % numbers.length 3. 다른 사람의 풀이class Solution { public int solution(int[] numbers, int k) { return (k-1)*2 % numbers.length+1; }}공을 던질 횟수는 k-1번.각..
[프로그래머스][java] lv 0 구슬을 나누는 경우의 수
·
코테/java
1. 문제 설명 2. 나의 풀이class Solution { public int solution(int balls, int share) { int denominator = 1; int numerator = 1; int temp = 1; for(int i = 1; i 처음에 이렇게 푼 다음에 성공인 줄 알았다.하지만 제출 후 테스트에서 반은 실패..!! 왜지!?!실패한 이유 denominator, numerator, temp 변수의 계산이 팩토리얼 계산 순서상 의도대로 작동하지 않을 가능성이 있음.팩토리얼 계산 시 값이 커지면서 int 범위를 초과하여 잘못된 결과를 반환할 가능성.필요하지 않은 팩토리얼 전체를 계산하여 비효율적임. ..
[프로그래머스][java] lv 0 진료순서 정하기
·
코테/java
1. 문제 설명2. 나의 풀이import java.util.Arrays;import java.util.Collections;class Solution { public int[] solution(int[] emergency) { int size = emergency.length; Integer[] sorted = new Integer[size]; //크기대로 정렬된 emergency 배열 int[] answer = new int[size];//인덱스가 들어갈 답 배열 for(int i = 0; i  1. emergency 배열 원소를 크기대로 내림차순 정렬2. 정렬된 배열과 원래 배열원소를 비교 3. 정답배열의 원래 배열원소가 있던 위치(j번지)에 ..