GROUP BY vs PARTITION BY WINDOW FUNCTION은 GROUP BY와 비슷하게 데이터를 그룹화하여 집계해준다. GROUP BY - 집계된 결과만 보여준다. 윈도우 함수 - 기존 데이터 + 집계된 값 해당 데이터를 가진 테이블이 있을 때, GROUP BY를 사용한 경우 select employee_id, sum(price) from sellings group by employee_id; 윈도우 함수를 사용한 경우 select car_id, employee_id, sum(price) over (partition by employee_id) from sellings order by car_id; 기본 형태 함수(함수_적용_열) OVER (PARTITION BY 그룹열 ORDER BY 순..
전체 글
개발자가 될테야1. CASE WHEN SELECT CASE WHEN {조건 1} THEN {반환값1} WHEN {조건 2} THEN {반환값2} ELSE {반환값3} END FROM {TABLE}; - WHEN, THEN은 쌍을 이루고 있어야 한다. - WHEN, THEN은 여러 번 사용이 가능하다. - 끝에 'END'를 꼭 적어주어야 함. - SELECT, FORM, WHERE 절에 들어갈 수 있다. ORDER BY 절에 사용한 예제 SELECT customerName, state, country FROM customers ORDER BY ( CASE WHEN state IS NULL THEN country ELSE state END); https://www.mysqltutorial.org/mysql-case-fun..
JOIN Join 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 조인이 필요 일반적으로 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 조인 조건은 일반적으로 각 테이블의 PK 및 FK로 구성된다. JOIN의 종류 INNER JOIN OUTER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN JOIN 조건의 명시에 따른 구분 NATURAL JOIN CROSS JOIN(FULL JOIN, CARTESIAN JOIN) JOIN 시 주의 조인의 처리는 어느 테이블을 먼저 읽을지 결정하는 것이 중요 (처리할 작업량이 상당히 달라진다.) INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 조인의 순서를 조절해서 다양한 방법으로 최적화를 수행할..
코딩 테스트에서는 조회 문제가 나오기 때문에 DML에서 기본적인 데이터 검색의 형식에 대해 정리해보겠다. 이렇게 세가지 테이블이 있다고 가정 1. 기본 구조 기본 검색 SELECT 열_리스트 FROM 테이블리스트 WHERE 조건; 2. 일반 형식 - all, distinct 연산자 SELECT [All | DISTINCT] 열리스트 FROM 테이블 리스트 GROUP BY 열리스트 (HAVING 조건) ORDER BY 열리스트 [ASC | DEDC]; 3. 검색 결과에서 레코드의 중복 제거 - distinct → 중복 제거 SELECT DISTINCT DEPT FROM STUDENT; 4. 테이블의 열 전부 검색 → asterisk SELECT * FROM STUDENT; 5. 조건 검색 - 4학년인 컴퓨..
https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 풀이 1. ArrayList 배열을 만들어 graph 입력을 받는다 (양방향) graph = new ArrayList[V + 1]; for (int i = 0; i 같은 색이면 이분 그래프가 아니므로 flag를 false로 바꿔준다. (2) 방문한 노드가 아니었다면, 그 노드의 색깔을 현재 노드와 반대되는 색으로 정해준다. (방문체크와 비슷) 4. 노드들의 집합마다 이분 그래프인지 확인해야 하므로..
https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 풀이 좌표 때문에 고민이 많았지만.. 그냥 고민하지 않고 풀면 되는 문제 1. (0,2) ~ (4, 4)라면 i의 반복문은 for(int i=0; i 0) { st = new StringTokenizer(br.readLine()); int si = Integer.parseInt(st.nextToken()); int sj = Integer.parseInt(st.nextToken(..
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테..
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한..
1. 객체 지향 프로그래밍(OOP) 1.1 객체란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 다른 것과 식별 가능한 것. 속성 - 필드 동작 - 메소드 현실 객체를 소프트웨어 객체로 설계 : 객체 모델링(Object Modeling) 현실 세계의 객체의 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정 1.2 객체의 상호작용 현실 세계에서 일어나는 모든 현상은 객체와 객체 간 상호작용으로 이루어져 있다. 각 객체는 독립적으로 존재하며, 다른 객체와 서로 상호작용을 하면서 동작한다. 객체들 사이의 상호작용 수단 - 메소드 객체가 다른 객체의 기능을 이용 - 메소드 호출 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2, ...) 1.3 객체 간..