SQL 28

JOIN에 대하여

@JOIN ~ ON은 INNER JOIN~ON과 같다 SELECT tb2.col1 FROM tb1 JOIN tb2 ON tb1.col1=tb2.col1; 결과 :tb1.col1, tb1.col1 가 생김 . select col1하면 에러 SELECT tb2.col1 FROM tb1 JOIN tb2 USING(col1) 결과 : col1만 생김 tb1.col1해도 에러는 나지않고 col1이 출력 잘됨. natural join에는 on을 사용할 수 없다. JOIN ~ON~은 특정 칼럼값만 같으면 조인되게 할수있는데 natural join은 모든 칼럼 값이 같아야 조인된다. @ 그냥 JOIN은 뭘까? 아래 둘은 결과가 같다. join에 on이나 using을 안적으면 카티션 곱 SELECT * FROM tb1,..

SQL 2022.11.06

SQL 누적합계 구하는 법

SUM(합계칼럼) OVER(ORDER BY 정렬기준칼럼) SUM(연봉칼럼) OVER(PARTITION BY 직업칼럼 ORDER BY 정렬칼럼) 개인적으로 공부할 때 MySQL을 깔아서 사용하기보다는 SQL test를 할 수 있는 사이트를 자주 애용합니다. 아래의 SQL Fiddle은 직접 데이터 테이블을 만들어서 연습할 수 있기에 아래에 올려두겠습니다. SQL Test Site : http://sqlfiddle.com ▷ 데이터 테이블 예시 Test_table member_id : 회원번호 order_amount : 주문금액 order_time : 주문시간 CREATE TABLE Test_table (`member_id` int, `order_amount` int, `order_time` datetime..

SQL 2022.10.29

SQL 두 종류이상 동시 count()하기

상황1. id가 gildong인 사람만 카운트 , id가 samsam인 사람만 카운트 SELECT COUNT(CASE WHEN id='gildong' THEN 1 END) AS gildongCnt, COUNT(CASE WHEN id='samsam' THEN 1 END) AS samsamCnt FROM expenditure; #조건 여러개(다중) 카운트 상황2. id가 YUMDDA인 사람이 돈을 1천만이상 쓴 데이터만 카운트 , id가 samsam인 사람만 카운트 SELECT COUNT(CASE WHEN id='YUMDDA' THEN 1 END AND CASE WHEN money > 10000000 THEN 1 END) AS YUMDDACnt, COUNT(CASE WHEN id='samsam' THEN 1..

SQL 2022.10.29

SQL 입양시각 구하기

문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_OUTCOME VARCHAR(N) FALSE 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시..

SQL 2022.10.27

SQL with recursive

WITH [RECURSIVE] TABLE명 AS ( SELECT - # 비반복문. 무조건 필수 [UNION ALL] # RECURSIVE 사용 시 필수. 다음에 이어붙어야 할 때 사용 SELECT - [WHERE -] # RECURSIVE 사용 시 필수. 정지 조건 필요할 때 사용 ) 출처: https://horang98.tistory.com/10 [horang:티스토리] 👀 WITH 구문 WITH 구문 이후에 오는 쿼리에서 임시 테이블의 테이블명을 사용하여 값을 참조할 수 있다. 예시 WITH CTE AS ( SELECT 0 AS NUM UNION ALL SELECT 0 FROM SOME_TABLE # SOME_TABLE의 행 수만큼 반복된다. ) 👀 WITH RECURSIVE 구문 WITH RECUR..

SQL 2022.10.27

SQL 우유와 요거트가 담긴 장바구니

우유와 요거트가 담긴 장바구니 문제 설명 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다. NAMETYPE ID INT CART_ID INT NAME VARCHAR PRICE INT 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 예시 예를 들어 CART_PRODUCTS 테이블이 다음과 같다면 C..

SQL 2022.10.26

SQL 그룹별 최대값

즐겨찾기가 가장 많은 식당 정보 출력하기 문제 설명 다음은 식당의 정보를 담은 REST_INFO 테이블입니다. REST_INFO 테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다. Column nameTypeNullable REST_ID VARCHAR(5) FALSE REST_NAME VARCHAR(50) FALSE FOOD_TYPE VARCHAR(20) TRUE VIEWS NUMBER TRUE FAVORITES NUMBER TRUE PARKING_LOT VARCHAR(1) TRUE ADDRESS..

SQL 2022.10.26