Programing Language/SQL
-
3. 윈도우 함수 문제Programing Language/SQL 2025. 6. 14. 23:35
🟢 연습문제 3-1: 기본 순위RANK() : 동일한 점수에 대해서 같은 순위 매김=> 상품별 총 판매량 순위에 적절ROW_NUMBER() : 동일한 점수여도 하나의 순위만 매김=> 카테고리 내 고객별 순위에 적절 [문제]상품별 총 판매량을 구하고, 판매량 순위를 매기시오.[테이블 구조]products: product_id, product_name, categoryorder_items: order_item_id, order_id, product_id, quantity-- 답SELECT A.product_id, A.product_name , SUM(B.quantity) TOTAL_QUNAT , RANK() OVER(ORDER BY SUM(B.quantity) DESC) RNFROM PRODUC..
-
2. JOIN + GROUP BY 문제Programing Language/SQL 2025. 6. 14. 23:21
🟢 연습문제 2-1: 기본 조인[문제]고객 테이블과 주문 테이블을 조인하여 각 고객별 총 주문 금액을 구하시오.[테이블 구조]customers: customer_id, customer_name, email, regionorders: order_id, customer_id, order_date, amount-- 답SELECT A.CUSTOMER_ID , A.CUSTOMER_NAME , SUM(AMOUNT) TOTAL_AMOUNTFROM CUSTOMERS AINNER JOIN ORDERS BON A.CUSTOMER_ID = B.CUSTOMER_IDGROUP BY A.CUSTOMER_ID , A.CUSTOMER_NAMEORDER BY TOTAL_AMOUNT DESC; 🔴 실전문제 2-1: 카테고리별 상위 ..
-
1. 날짜/시간 처리 문제Programing Language/SQL 2025. 6. 14. 21:58
📅 1. 날짜/시간 처리 문제🟢 연습문제 1-1: 기본 날짜 조회일자는 데이터량이 커지면 함수사용보다는 >,그 다음으로 사용해볼 만한 게 BETWEEN, 하지만 BETWEEN은 시간대까지 있는 경우에는 경계를 조심해서 사용해야 함/*[문제]주문 테이블(orders)에서 2023년 10월에 주문된 모든 주문의 주문ID, 고객ID, 주문일자를 조회하시오.[테이블 구조]orders: order_id, customer_id, order_date, amount*/-- 답SELECT ORDER_ID, CUSTOMER_ID, ORDER_DATEFROM ORDERSWHERE ORDER_DATE >= '2023-10-01' AND ORDER_DATE 🔴 실전문제 1-1: 요일별 매출 분석요일 데이터는 DAYOF..
-
PERCENTILE vs NTILE 완벽 비교 가이드Programing Language/SQL 2025. 6. 14. 11:51
🎯 핵심 차이점 요약구분PERCENTILENTILE목적특정 백분위값 구하기데이터를 N등분하기반환값실제 데이터 값그룹 번호 (1, 2, 3...)사용법PERCENTILE_CONT(0.5)NTILE(4)결과중간값, 75백분위값 등1분위, 2분위, 3분위 등📊 PERCENTILE 함수들1. PERCENTILE_CONT (연속형) sql-- 50백분위 (중간값) 구하기SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary) AS median_salaryFROM employees;-- 25백분위, 75백분위 구하기 SELECT PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY salary) AS q1, PERCENTI..
-
프로그래머스_대장균의 크기에 따라 분류하기 2Programing Language/SQL 2025. 6. 14. 11:48
https://school.programmers.co.kr/learn/courses/30/lessons/301649대장균 개체의 크기를 내름차순으로 정렬했을 때 상위 0% ~ 25% 를 'CRITICAL', 26% ~ 50% 를 'HIGH', 51% ~ 75% 를 'MEDIUM', 76% ~ 100% 를 'LOW' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류된 이름(COLONY_NAME)을 출력하는 SQL 문을 작성해주세요. 이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요 . 단, 총 데이터의 수는 4의 배수이며 같은 사이즈의 대장균 개체가 서로 다른 이름으로 분류되는 경우는 없습니다. 1.PERCENT_RANK() 활용ID별 특정 분위수로 나눠야할 때 적합SELECT ID, CASE ..
-
DAYOFWEEK 함수Programing Language/SQL 2025. 6. 14. 11:11
기본 문법 sqlDAYOFWEEK(date)반환값 1 = 일요일 (Sunday)2 = 월요일 (Monday) 3 = 화요일 (Tuesday)4 = 수요일 (Wednesday)5 = 목요일 (Thursday)6 = 금요일 (Friday)7 = 토요일 (Saturday)🔍 기본 사용 예시 sql-- 오늘이 무슨 요일인지SELECT DAYOFWEEK(CURDATE()); -- 오늘이 토요일이면 7 반환-- 특정 날짜의 요일SELECT DAYOFWEEK('2025-06-14'); -- 7 (토요일)-- 주문 데이터의 요일 확인SELECT order_id, order_date, DAYOFWEEK(order_date) as day_numFROM orders;🎯 실무 활용 예시1. 요일별 매출 분석 sqlSE..
-
CTE(Common Table Expression) 완벽 이해 가이드Programing Language/SQL 2025. 6. 13. 22:45
🎯 CTE란?**CTE (Common Table Expression)**는 **"임시 테이블"**을 만드는 SQL 문법입니다.쉬운 비유서브쿼리의 업그레이드 버전변수처럼 중간 결과를 저장하고 재사용함수처럼 복잡한 로직을 단순화📝 기본 문법 sqlWITH 임시테이블명 AS ( SELECT 쿼리...)SELECT * FROM 임시테이블명;실제 예시 sql-- 기존 복잡한 쿼리SELECT *FROM ( SELECT customer_id, SUM(amount) as total FROM orders WHERE order_date >= '2023-01-01' GROUP BY customer_id) subWHERE total > 1000;-- CTE로 깔끔하게WITH customer_t..
-
프로그래머스_멸종위기의 대장균 찾기Programing Language/SQL 2025. 6. 13. 21:42
https://school.programmers.co.kr/learn/courses/30/lessons/301651각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요. 이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다. 멸종위기의 대장균 찾기1. 최초 코드(재귀함수, inner join, left join 활용)재귀함수 활용해서 ID별 노드 수 생성LEFT JOIN 해서 ID별 자식 유무 확인-- ID별 GENERATION 생성WITH RECURSIVE G AS ( -- 최초 ID별 레벨 생성 SELECT ID, 1 AS G_LEVEL FROM ECOLI_DATA WHER..