AI SCHOOL/SQL 16

[SQL] 실무 데이터 분석

2.1 2022년 전체 주문건, 총 매출, 평균 매출 order_items 테이블에서 2022년도의 전체 주문건수, 총 매출, 평균 매출을 조회해보세요. 조회 항목 전체 주문 건수 (total_order_count) 판매 금액 합계_(total_sale_price) 평균 판매 금액 (avg_sale_price) select count(order_id) as total_order_count, sum(sale_price) as total_sale_price, avg(sale_price) as avg_sale_price from `thelook_ecommerce.order_items` where extract(year from created_at) = 2022 where extract(year from cre..

AI SCHOOL/SQL 2023.02.10

[SQL] WITH / 서브쿼리 연습문제 - 1

SQL 연습문제 10-1 thelook_ecommerce 데이터 세트, events 테이블에는 유저의 웹 사이트 접속기록 데이터가 기록되어있습니다. 이벤트 기록에서 이벤트 타입이 purchase인 이벤트가 10번 이상 등록된 사람을 "실 고객"라고 부릅니다. 실고객에 해당하는 회원의 **이벤트 정보(events)**들을 유저 아이디 순으로 조회하세요. 실고객에 해당하는 user_id들을 먼저 구한뒤에 해당 user_id들을 이용해서 이벤트 정보를 조회하세요. 조회 항목 : 이벤트id(id), 유저ID(user_id), 도시(city), 주(state), 우편번호(postal_code), 브라우저 종류(browser), 유입경로(traffic_source), 이벤트 타입(event_type) 정렬 : 유저..

AI SCHOOL/SQL 2023.02.02

[SQL] WITH / 서브쿼리

1. 서브쿼리(Sub Query) - 서브쿼리는 다른 SQL문 안에 중첩된 SELECT문 국가가 ‘Brasil’인 유저의 주문정보(orders)를 조회 하는 쿼리 - orders를 조회하는 select문의 where절 안에서 user의 국가가 ‘Brasil’인 id를 조회하는 쿼리를 하위로 넣어서 실행 select * from `thelook_ecommerce.orders` where user_id in ( select id from `thelook_ecommerce.users` where country = 'Brasil' ) FROM절에서 사용되는 서브쿼리 select id, a.first_name, a.last_name, b.order_count as order_count from `thelook_e..

AI SCHOOL/SQL 2023.02.02

[SQL] 집합 연습문제

SQL 연습문제 9-1 위니브 상품정보1(weniv_product) 테이블과 위니브 상품정보2(weniv_product2) 테이블 간 모든 정보를 조회하시오.(단, 중복 제거하여 조회하시오.) select * from `weniv.weniv_product` as pd1 union distinct select * from `weniv.weniv_product2` as pd2 SQL 연습문제 9-2 위니브 회원(weniv_user) 테이블에서 주문 이력(weniv_order)이 있는 사람의 id을 조회하세요. select id from `weniv.weniv_user` as user INTERSECT DISTINCT select user_id from `weniv.weniv_order` as orders S..

AI SCHOOL/SQL 2023.01.27

[SQL] 집합

1. 집합 - 집합 작업은 둘 이상의 쿼리 결과를 단일 결과로 결합하는 데 사용 - 결합된 쿼리는 동일한 수의 열을 반환해야 함 - 호환 가능한 데이터 유형, 해당 열의 이름은 다를 수 있음 2. UNION(합집합) - UNION은 두 결과 집합의 결과를 결합하고 중복을 제거 - union all은 중복 행을 제거하지 않음 - all : 모든 결과 확인 - distinct : 중복 제거 select * from `weniv.weniv_user` as user1 UNION ALL select * from `weniv.weniv_user3` as user3 select * from `weniv.weniv_user` as user1 UNION DISTINCT select * from `weniv.weniv_u..

AI SCHOOL/SQL 2023.01.27

[SQL] JOIN 연습문제

SQL 연습문제 8-1 회원(users) 테이블과 주문정보(orders) 테이블을 이용하여 모든 주문내역에 회원정보를 표시하세요. 조회 항목 : 주문ID(order_id), 주문한 상품 수량(num_of_item), 회원 이름(first_name, last_name), 주소(street_address), 우편번호(postal_code), 도시(city), 국가(country) SELECT t2.order_id, t2.num_of_item, t1.first_name, t1.last_name, t1.street_address, t1.postal_code, t1.city, t1.country FROM `thelook_ecommerce.users` as t1 left join `thelook_ecommerce...

AI SCHOOL/SQL 2023.01.26

[SQL] 조건분기(CASE, IF)

1. 조건분기 SELECT CASE WHEN 조건 THEN 참일 경우_실행구문 ELSE 거짓말일 경우_실행구문 END SELECT CASE WHEN floor = 1 THEN '1층 입니다.' WHEN floor = 2 THEN '2층 입니다.' WHEN floor = 3 THEN '3층 입니다.' WHEN floor = 4 THEN '4층 입니다.' ELSE '층수가 없어요' END; 이렇게 여러 조건이 있을 때 첫번째 조건에서 바로 충족되면 첫번째 조건에서 끝남 Oracle의 경우에는 DECODE, CASE WHEN MsSQL의 경우에는 CASE WHEN MySQL의 경우에는 IF, CASE WHEN SELECT order_id, user_id, status, case when status = 'sh..

AI SCHOOL/SQL 2023.01.26

[SQL] 조건분기(CASE, IF) 연습문제

SQL 연습문제 7-1 주문정보(orders) 테이블에서 order_id, gender, gender_label(gender의 값에 따른 성별을 한글로 표시)을 해주세요. 필드명 : gender_label gender가 F 이면 '여성' gender가 M 이면 '남성' 결과로 표시할 필드 order_id gender gender_label 정렬순서 : order_id 오름차순 select order_id,gender, case when gender = 'F' then '여성' when gender = 'M' then '남성' end as gender_label from `thelook_ecommerce.orders` order by order_id -> case when 은 , 를 붙이지 않는다. cas..

AI SCHOOL/SQL 2023.01.26

[SQL] 날짜 함수

날짜 : DATE() 시간 : DATETIME() SELECT CURRENT_DATE(); 현재 날짜 얻는 방법 --timezone을 설정할 수 있습니다. SELECT DATE('2023-1-1', 'Asia/Seoul') 데이터 추출 SELECT EXTRACT(YEAR FROM DATE '2023-1-1'); SELECT EXTRACT(DAY FROM CURRENT_DATE()); 시간 SELECT CURRENT_DATETIME() DATETIME을 통해 시간 객체 생성할 수 있음 1. DATETIME(year, month, day, hour, minute, second) 2. DATETIME(date_expression[, time_expression]) 3. DATETIME(timestamp_exp..

AI SCHOOL/SQL 2023.01.25