본문 바로가기
728x90

SQL기초10

SQL 1-3 이름이 있는 동물의 아이디 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. select animal_idfrom animal_inswhere name is not nullorder by animal_id asc 역순 정렬하기 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.select name, datetimefrom animal_insorder by animal_id desc 중복 제거하기 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해.. 2025. 5. 15.
[연습] programmers SQL 고득점 키트(SELECT, 11~15) 오답노트group by → having count(*) >=2LV 1. 재구매가 일어난 상품과 회원 리스트 구하기 Q. ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.풀이(전) group by(후) having count(*)>=2 * HAVING 은 GROUP BY로 그룹화된 결과에서 특정 조건을 만족하는 그룹 필터링 할 때 사용COUNT(*) = 각 그룹에 해당하는 레코드 수 = 동일 상품의 구매 횟수select user_id, product_idfrom onli.. 2025. 5. 7.
[연습] programmers SQL 고득점 키트(SELECT, 6~10) 오답노트coalesce(컬럼, "NONE") ★ 값이 없는 경우, 대체하기order by 컬럼명 desc , asc ★ 오더바이절 여러 개인 경우 쉼표(,) 추가date_format(컬럼명, '%Y-%m-%d') ★ date언더바format(컬럼명 쉼표, '%Y-%m-%d')where year(컬럼명)=2021where year(어느 테이블의 컬럼명)=2021 and month(어느 테이블의 컬럼명)=10 order by (date형식의 컬럼명) asc where 컬럼명 is not null LV 1. 12세 이하인 여자 환자 목록 출력하기Q. PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번.. 2025. 5. 2.
[연습] programmers SQL 고득점 키트(SELECT, 1~5) 오답노트date_format(컬럼명, '%Y-%m-%d')round(avg(컬럼명), 0) ★ 소수점 첫 번째 자리에서 반올림 = 0 round(avg(컬럼명), 2) ★ 소수점 세 번째 자리에서 반올림 = 2 where 컬럼명 in ('AA', 'BB')group by 컬럼명 ★ 함수를 썼다면 그룹바이절 필수order by 컬럼명 desc , asc ★ 오더바이절 여러 개인 경우 쉼표(,) 추가LV 4. 서울에 위치한 식당 목록 출력하기 Q. REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요.이.. 2025. 5. 2.
SQL 5주차④(date) date() 문자형 → 날짜형select date, # 컬럼명이 date인 것 date(date) change_date # date()함수 적용from payments결과 A-Z(문자형) date에서 시계모양(날짜형) change_date가 된 것 확인 가능 date_format 날짜 데이터의 여러 포멧select date(date) date_type, date_format(date(date), '%Y') "년", date_format(date(date), '%m') "월", date_format(date(date), '%d') "일", date_format(date(date), '%w') "요일"from paymen.. 2025. 4. 29.
SQL 5주차③(rank, sum) rank() over [실습] 음식 타입별로 주문 건수가 가장 많은 상점 3개씩 조회 풀이 (총 3단계) 1. 음식 타입별, 음식점별 주문 건수 집계 count(1) 활용select cuisine_type, restaurant_name, count(1) order_cnt from food_ordersgroup by 1,22. Rank over 함수 적용2-1) 앞에 구한 집계를 SUBQUERY a로 명함2-2) Rank 힘수 rank() over (partition by cuisine_type order by order_cnt desc) ranking ★ rank()over 한 쌍임, 같이 입력해야함 ★ partition.. 2025. 4. 29.
SQL 5주차②(피벗테이블) SQL로 Pivot Table 만들어보기[실습1] 음식점별 시간별 주문건수 Pivot Table 뷰 만들기 (15~20시 사이, 20시 주문건수 기준 내림차순)풀이 (총 2단계)1. 음식별 시간별 주문건수 집계1-1) 음식은 food_orders, 시간은 payments에 있으므로 공통 컬럼인 order_id를 통해 join 필요 from food_orders f join payments p on f.order_id=p.order_id 1-2) select에 "00:00:00" 꼴인 time의 값 앞 두 글자만 추출하는 new_time 만들고, 괄호의 조건을 where로 만들기 substr(time,1,2) new_time ... where sub.. 2025. 4. 29.
SQL 4주차②(left join, inner join) join (from에 입력)VLOOKUP과 비슷한 기능LEFT JOIN 공통 컬럼 (키값)을 기준으로, 하나의 테이블에 값이 없더라도 모두 조회되는 경우를 의미 INNER JOIN 공통 컬럼 (키값)을 기준으로, 두 테이블 모두에 있는 값만 조회 예시1select * from food_orders left join payments on food_orders.order_id=payments.order_idfood_orders의 데이터를 전부 불러오고 payments의 데이터도 불러오는데, food_orders의(.) order_id와 payments의(.) order_id로 데이터를 불러줘.→ left join 의미 payments에 없는 order_id여도 food_orders에 있는 데이터 전부 .. 2025. 4. 28.
SQL 4주차①(subquery) subqueryselect price/quantityfrom( select price, quantityfrom food_orders) a순서 괄호 안의 내용을 써주고 → 괄호 추가+ a처럼 별명 지어줘야 함 → 위에 select from 쓰기해석 1. food_orders 에서 price와 quantity를 추출2. subquery이므로 앞 뒤 괄호() 추가하고 이를 'a'라고 별명 지어주기3. subquery를 이용(from)해서 price/quantity를 추출(select)중요: 맨 위의 select는 from의 값들만 가져올 수 있으므로, 중간 select의 값들만 불러오기 가능결과 [실습 1] User Segmentation 문제 1. 음식점의 평균 단가별 segmentation 을 진행하고.. 2025. 4. 28.
SQL 3주차②(case when then) case when... then... (else)... end = 다 select에 씀if가 1개 조건 적용이라면, case는 여러 조건 적용 가능 select case when 조건1 then 값(수식)1 (쉼표없음) when 조건2 then 값(수식)2 (쉼표없음) else 값(수식)3 (쉼표없음) end , 컬럼명 (뒤에 추가 소환할 컬럼이 있는 경우에만 쉼표있음) 문제 1. 음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Japanese’ 혹은 ‘Chinese’ 일 때는 ‘아시아’, 그 외에는 ‘기타’ 라고 지정 결과풀이select restauran.. 2025. 4. 25.
728x90