전체 글

전체 글

    실무 SQL 예제 2

    중요! Q19. 20년 7월 일별 고과금 유저 TOP3 SELECT FROM ( SELECT DATE_FORMAT(purchased_at - INTERVAL 9 HOUR, '%Y-%m-%d') AS d_date , customer_id , SUM(price) , DENSE_RANK() OVER(PARTITION BY DATE_FORMAT(purchased_at - INTERVAL 9 HOUR, '%Y-%m-%d') ORDER BY SUM(price) DESC) AS rank_rev FROM fastcampus.tbl_purchase WHERE purchased_at >='2020-07-01' AND purchased_at < '2020-08-01' GROUP BY 1, 2 ) AS t1 WHERE ran..

    실무 SQL 예제

    Q1 SELECT SUM(price) FROM tbl_purchase WHERE purchased_at LIKE '2020-07%' ; SELECT SUM(price) FROM tbl_purchase WHERE purchased_at >= '2020-07-01' AND purchased_at< '2020-08-01'; Q2 2020 07의 MAU? SELECT COUNT(DISTINCT customer_id) FROM tbl_visit WHERE visited_at LIKE '2020-07%'; #Q3 7월의 ACTIVE 유저의 paying rate? SELECT COUNT(DISTINCT customer_id)/(SELECT COUNT(DISTINCT customer_id) FROM tbl_visit ..

    [데이터 직군 비교] 비즈니스 애널리스트, 데이터분석가, 데이터사이언티스트, 데이터엔지니어 비교, 차이

    비즈니스 애널리스트(BA) Business Analyst - 비즈니스 데이터를 분석해서 의미를 찾는 직무 - 업무 예시 : 비즈니스 KPI정의, AB테스트 - 주로사용하는 기술 : SQL, 데이터시각화(BI), 커뮤니케이션 데이터분석가 - 데이터를 가공하고 분석해 의미를 찾는 직무 - 업무 예시 : 통계분석 - 주로 사용하는 기술 : SQL, Python/R, 통계 데이터사이언티스트 - 데이터를 활용해 모델 알고리즘을 개발하는 직무 - 업무 예시 : 머신러닝 모델링, 예측, 최적화 - 기술 : SQL, Python/R, 머신러닝 데이터엔지니어 - 데이터를 수집하고 정제하는 직무 - 업무예시 : 데이터처리시스템 구축, 최적화 - 사용 기술 : SQL, 프로그래밍 언어(Python, JAVA), 빅데이터 처..

    Transaction 과 TCL

    TCL : Transaction Control Language COMMIT ROLLBACK SAVEPOINT -- 트랜잭션 시작하기 START TRANSACTION; -- 트랜잭션 확정하기 COMMIT; -- 트랜잭션 이전으로 돌아가기 ROLLBACK; -- 세이브포인트 만들기 SAVEPOINT 세이브포인트 이름; -- 세이브포인트로 돌아가기 ROLLBACK TO 세이브포인트

    권한과 DCL , GRANT, REVOKE

    대장 사용자 = ROOT 사용자 --MySQL의 기본데이터베이스인 mysql 선택하기 USE mysql; --사용자 목록 조회하기 SELECT user, host FROM user; --사용자 생성하기 CREATE USER 사용자이름 @ip주소 ; --사용자 비밀번호도 함께 생성하기 CREATE USER 사용자이름 @ip주소 IDENTIFIED BY '사용자비밀번호'; -- 사용자 삭제하기 DROP USER 사용자이름 --권한부여하기 GRANT 권한 ON 데이터베이스이름.테이블이름 TO 사용자이름 @ip주소; --권한 확인하기 SHOW GRANTS FOR 사용자이름@ip주소 --권한 삭제하기 REVOKE 권한 ON 데이터베이스이름.테이블이름 FROM 사용자이름@ip주소; --권한 적용하기 FLUSH PR..

    CREATE TABLE , 제약조건(NOT NULL, UNIQUE, DEFAULT, PK, FK)

    CREATE TABLE 및 ALTER TABLE 구문에서 설정 가능 제약조건 종류 NOT NULL - 널값 저장 불가 UNIQUE - 서로 다른 값 가져야함 DEFAULT - 입력값 없을 시 기본값 설정 PRIMARY KEY - 기본 키, NOT NULL과 UNIQUE 특징 모두 가짐 FOREIGN KEY - 외래 키, 다른 테이블의 특정 컬럼을 참조 CREATE TABLE friendpokemon( number INT PRIMARY KEY, name VARCHAR(20) NOT NULL, attack INT DEFAULT 0, FOREIGN KEY(number) REFERENCES mypokemon(number) );

    DELETE, UPDATE Error CODE 1175

    DELETE FROM pokemon.mypokemon WHERE attack >50 ; UPDATE pokemon.mypokemon SET type='normal' WHERE name ='chikorita'; 1175 ERROR 1175 ERROR 메뉴>preferences접속>SQL Editor 접속> 하단Safe Updates 해제 > OK클릭해 적용> 이후 반드시 Local Instance 재접속

    서브쿼리 예제

    SELECT number FROM ability WHERE EXISTS(SELECT * FROM ability WHERE type='bug'); mission 1) SELECT number FROM ability WHERE weight=(SELECT MAX(weight) FROM ability); mission 2) SELECT number FROM ability WHERE speed defense); mission 3) SELECT ..

    RANK, DENSE_RANK, ROW_NUMBER

    RANK 12245 SELECT절에 사용 SELECT RANK() OVER(ORDER BY 컬럼 DESC) AS 별명 DENSE_RANK 12234 ROW_NUMBER 12345

    서브쿼리(select, from, where)

    전부 서브쿼리 가능 SELECT FROM WHERE GROUP BY -> 서브쿼리 불가 HAVING ORDER BY 서브쿼리 특징 - 반드시 괄호안에 있어야 함 - GROUP BY 절을 제외한 모든 절에 사용가능 - INSERT, UPDATE, DELETE문에도 사용가능 서브쿼리에는 세미콜론을 붙이지 않아도 됩니다 세미콜론 ; 은 전체 메인쿼리가 끝난 마지막에만 붙일수있음 SELECT, 서브쿼리 ( 스칼라 서브쿼리) SELECT절의 서브쿼리는 반드시 결과값이 하나의 값!! SELECT number, name, (SELECT height FROM ability WHERE number=25) AS height FROM mypokemon WHERE name='pikachu'; FROM 서브쿼리(인라인뷰 서브쿼..