SQL(26)
-
SQL - 심화 2
-- 4 2020년 7월에 구매 유저의 월 평균 구매액은 어떻게 되나요? > 고객당 월 평균 구매액 -- AAPPU = Average Revenue Per Paying User SELECT avg(revenue) FROM ( SELECT customer_id ,sum(price) AS revenue FROM tbl_purchase WHERE visited_at >= '2020-07-01' AND visited_at < '2020-08-01' group by 1 ) sub; -- 5. 7월에 가장 많이 구매한 TOP3 고객과 TOP10~15 고객을 뽑아주세요. -- top 3 SELECT customer_id ,sum(price) AS revenue FROM tbl_purchase WHERE visited..
2022.03.20 -
SQL - 심화1
테이블 EDA SELECT * FROM tbl_purchase ; SELECT * FROM fastcampus.tbl_visit; Q1 : 2020년의 7월의 Revenue를 구해주세요. SELECT SUM(price) AS revenue FROM tbl_purchase WHERE purchased_at >= '2020-07-01' AND purchased_at = '2020-07-01' AND visited_at < '2020-08-01'; Q3 : 2020년의 7월 Active 유저의 구매율(P..
2022.03.20 -
View
VIEW 가상의 테이블, 실제 데이터를 저장하지 않고 데이터의 주소 값만 가짐 한마디로 특정 컬럼의 데이터를 보여주는 역할 쿼리를 간단하게 줄여주는 기능 수정 및 인덱스 설정이 불가능 View 코드 CREATE VIEW AS (QUERY) View 사용 예제 use world; select sub1.continent, sub1.region, count(sub1.region) as count from ( select distinct country.continent, country.region, countrylanguage.language from country join countrylanguage on country.code = countrylanguage.countrycode ) as sub1 group..
2022.03.20 -
GROUP BY, HAVING
GROUP BY 지정된 열의 값이 하나의 그룹으로 묶임 GROUP BY + 집계함수 점포별, 상품별, 월별, 일별 등 특정 단위로 집계할 때 사용 SELECT [GROUP BY 대상 컬럼 이름], ... , [그룹 함수] FROM [테이블 이름] WHERE 조건식 GROUP BY [컬럼 이름]; GROUP BY가 쓰인 쿼리의 SELECT 절에는 GROUP BY 대상 컬럼과 그룹 함수만 사용 가능함 HAVING SELECT [컬럼 이름], ..., [그룹 함수] FROM [테이블 이름] WHERE 조건식 GROUP BY [컬럼 이름] HAVING 조건식; HAVING + 조건식 형식으로 사용함 조건식이 True(참)이 되는 그룹만 선택함 HAVING 절의 조건식에서는 그룹 함수를 활용함 집계함수는 WHER..
2022.03.17 -
제약조건 , 권한
제약 조건 NOT NULL : 이 컬럼에는 NULL 값을 저장할 수 없음 UNIQUE : 이 컬럼의 값들은 서로 다른 값을 가져야 함 DEFAULT : 이 컬럼에 입력값이 없을 시 기본값이 설정됨 PRIMARY KEY : 이 컬럼은 테이블의 기본 키, NOT NULL과 UNIQUE 특징을 모두 가짐 FOREIGN KEY : 이 컬럼은 테이블의 외래 키, 이 컬럼은 다른 테이블의 특정 컬럼을 참조함 AUTO_INCREMENT : 주로 테이블의 PRIMARY KEY 데이터를 저장할때 자동으로 숫자를 1씩 증가시켜 주는 기능으로 사용함 권한과 DCL DDL : 데이터 정의어(Data Definition Language) (EX)CREATE, ALTER, DROP, RENAME, TRUNCATE DML : 데이..
2022.03.17 -
집합
합집합 [쿼리 A] UNION [쿼리B] 또는 [쿼리 A] UNION ALL [쿼리B] 형식으로 사용함 [쿼리 A]와 [쿼리 B]의 결과 값을 합쳐서 보여줌 [쿼리 A]와 [쿼리 B]의 결과 값의 개수가 같아야 하며 다를 경우 에러가 발생함 ORDER BY는 쿼리 가장 마지막에 작성 가능하고, [쿼리 A]에서 가져온 컬럼으로만 가능 UNION은 동일한 값은 제외하고 보여주며, UNION ALL은 동일한 값도 포함하여 보여줌 교집합 MYSQL에는 두 표현이 존재하지 않아 JOIN을 사용해 표현 SELECT [컬럼 이름] FROM [테이블 A 이름] AS A INNER JOIN [테이블 B 이름] AS B ON A.[컬럼1 이름] = B.[컬럼1 이름] AND ... AND A.[컬럼n 이름] = B.[컬럼..
2022.03.17