✔ Window Function레스토랑 요일 별 구매금액 Top 3 영수증[SolveSql top-3-bill]NTILE() OVER() : 지정된 수만큼의 파티션으로 등급을 나누어 각 등급 번호를 반환 RANK() OVER() : 순위 값 중 동등 순위 번호를 같게 나오고 그 다음 순위를 다음 번호를 뺀 그 다음 값을 반환 (1 1 3)DENSE_RANK() OVER() : 순위 값 중 동등 순위 번호는 같게 나오고 그 다음 순위를 다음 번호로 반환 (1 1 2)ROW_NUMBER() OVER() : 동등 순위를 인식하지 않고 매번 증가되는 번호를 반환 (1 2 3)OVER(PARTITION BY) : 이때 파티션을 적용해 파티션 안의 순위를 찾을 수 있음LEAD() OVER() : 지정된 ..
✔ 트리의 지름[백준 1967]코드 구현하기/* * 문제 분석하기 * : DFS 탐색을 통해 루트 노드에서부터 가장 먼 노드를 찾은 후, 그 노드로부터 가장 먼 노드를 찾아 지름을 찾도록 함 *//* * 손으로 풀어보기 * 1. DFS 탐색을 통해 루트 노드에서부터 가장 먼 노드 찾기 * 2. 그 노드로부터 가장 먼 노드를 찾아 지름 출력 *//* * 1967) 트리의_지름 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int n; static ArrayList[] tree; // tree(트리 데이터 저장 인접 리스트) sta..
✔ String, Date최근 올림픽이 개최된 도시[SolveSql olympic-cities]/* SELECT : 올림픽 개최년도, 올림픽 개최도시 FROM : games 테이블 WHERE : 2000년 이후 올림픽이 개최된 도시 ORDER BY : 최근에 개최된 도시부터 내림차순 정렬*/SELECT year, UPPER(SUBSTR(city, 1, 3)) AS 'city'FROM gamesWHERE year >= 2000ORDER BY year DESC
✔ Aggregate데이터 그룹으로 묶기[SolveSql group-by]/*SELECT : 콰르텟, x 평균, x 표본 분산, y 평균, y 표본 분산FROM : points 테이블GROUP BY : quartet 컬럼*/SELECT quartet, ROUND(AVG(x), 2) AS 'x_mean', ROUND(VARIANCE(x), 2) AS 'x_var', ROUND(AVG(y), 2) AS 'y_mean', ROUND(VARIANCE(y), 2) AS 'y_var'FROM pointsGROUP BY quartet우리 플랫폼에 정착한 판매자 1[SolveSql settled-sellers-1]/* SELECT : 판매자 ID, 판매자가 판매한 주문 건수 FROM : olist_orde..
✔ 사촌[백준 9489]코드 구현하기/* * 문제 분석하기 * : k와 조부모는 같으면서 부모는 다른 노드들의 개수를 찾도록 함 *//* * 손으로 풀어보기 * 1. 각 노드에 따른 부모 노드의 인덱스 위치를 저장하도록 함 * 2. k와 조부모는 같으면서 부모는 다른 노드들의 개수를 찾도록 함 * 3. 사촌의 수를 출력 * 4. n과 k가 둘 다 0일 경우 종료 *//* * 9489) 사촌 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int n, k; static int[] node; // node(노드의 정보를 저장하는 배열) ..
✔ JOIN, UNION두 테이블 결합하기[SolveSql join]/* SELECT : 선수 ID FROM : events, records 테이블 WHERE : 종목 이름이 Golf */SELECT DISTINCT R.athlete_idFROM events E JOIN records R ON E.id = R.event_idWHERE E.sport = 'Golf'쇼핑몰의 일일 매출액[SolveSql olist-daily-revenue]/* SELECT : 매출 날짜와 해당 날짜의 매출액 FROM : olist_orders_dataset, olist_order_payments_dataset 테이블 WHERE : 2018년 1월 1일 이후 GROUP BY : 날짜 별 ORDER BY : 매출 날짜 기..