SQL 배우기
-
[Leetcode] Human Traffic of StadiumSQL 배우기 2024. 3. 21. 23:26
연속된 숫자에서 특정 조건으로 그룹화를 하는 신박한 방법을 알게 되어서 기록을 해보려 합니다. 리트코드의 Human Traffic of Stadium 문제입니다. 문제 : 날짜별로 경기장에 방문한 사람들의 수가 있습니다. 3번 이상 연속으로 100명 이상 방문한 id 들의 id, visit_date, people 을 출력하세요. Input: Stadium table: +------+------------+-----------+ | id | visit_date | people | +------+------------+-----------+ | 1 | 2017-01-01 | 10 | | 2 | 2017-01-02 | 109 | | 3 | 2017-01-03 | 150 | | 4 | 2017-01-04 | 9..
-
[SQL] 입양 시각 구하기(2) 재귀 쿼리 WITH RECURSIVESQL 배우기 2024. 3. 19. 18:39
현업에서 일할 때는 재귀함수를 쓸 일이 없어서 몰랐는데, 문제를 풀다가 SQL 재귀 쿼리 사용법에 대해 배우게 되었습니다. 파이썬으로는 for, while 구문은 기본인데, SQL 에서는 어떻게 사용할까요?? 바로 WITH RECURSIVE 절입니다. 기본 문법 구성 WITH RECURSIVE cte_name AS ( -- Anchor member SELECT ... UNION ALL -- Recursive member SELECT ... FROM cte_name WHERE ... ) SELECT * FROM cte_name; 프로그래머스의 입양 시각 구하기(2) 문제를 통해 연습해보겠습니다. [입양 시각 구하기(2)] 입양시간이 매 시간있는 것이 아니라서 0~23 시의 기본 테이블을 만든 후, 이 테이..
-
[SQL] 그룹별 조건에 맞는 식당 목록 출력하기 SQLSQL 배우기 2024. 3. 19. 18:17
프로그래머스 SQL 문제 중에 괜찮은 문제가 있어서 가지고 왔습니다. [그룹별 조건에 맞는 식당 목록 출력하기] 괜찮다고 생각한 이유는 1) 서브 쿼리 2) 윈도우 함수 3) 조인 이 복합적으로 사용되는 좋은 문제이기 때문입니다! 우선 문제는 리뷰를 가장 많이 작성한 회원의 리뷰를 조회하는 코드를 짜는 것입니다. 저는 두 가지 방식으로 문제를 풀어볼건데요. 비슷한 풀이이지만 "윈도우 함수 사용 여부"에 차이가 있습니다! 1) 리뷰를 많이 쓴 회원을 찾기 - 윈도우 함수 사용 2) 회원별 리뷰의 갯수 중에 가장 많은 리뷰의 갯수를 찾기 - 윈도우 함수 미사용 1) 리뷰를 많이 쓴 회원을 찾기 - 윈도우 함수 사용 wi..
-
[SQL] 가로 데이터를 세로로 변환하기 (SQL 난이도 중)SQL 배우기 2024. 1. 12. 11:48
[문제] 표1과 같은 가로 형태의 테이블을 표2로 변환하시오. [표1] year q1 q2 q3 q4 2015 82000 83000 78000 83000 2016 85000 85000 80000 81000 2017 92000 81000 [표2] year quarter sales 2015 q1 82000 2015 q2 83000 : : : 2017 q4 [아이디어] 컬럼으로 표현된 가로 기반 데이터의 특징은 데이터의 수가 고정되었다는 것입니다. (q1, q2, q3, q4) 행으로 전대할 데이터가 고정되었다면, 데이터 수와 같은 수의 일련 번호를 가진 피벗 테이블을 만들고 CROSS JOIN 하면 됩니다. select q.year , case when p.idx = 1 then 'q1' when p.idx..
-
주피터노트북에서 MySQL 설치 및 연동하기SQL 배우기 2024. 1. 10. 16:49
MySQL 설치 우선 mysql을 설치해야합니다. 1. 터미널에 brew install mysql 입력하여 실행하세요. 이것저것 많이 깔릴거에요! brew install mysql 2. 아래와 같은 기본 사용법이 나타날 것입니다. 비밀번호 설정을 원하거나, mysql에 연동하거나 시작하고 싶으면 아래 명령어를 참고하세요 We've installed your MySQL database without a root password. To secure it run: mysql_secure_installation MySQL is configured to only allow connections from localhost by default To connect run: mysql -u root To start my..
-
[SQL] NULL 값이 있을 때 연산하기 (SIGN, COALESCE)SQL 배우기 2024. 1. 9. 22:37
년도별 평균 적금 판매 좌수를 구하고 싶습니다. 2023년도 4분기는 아직 결산이 안됐습니다. NULL값으로 발생하는 문제가 있습니다. → NULL 값을 함께 연산을 하면 NULL 값이 나옵니다. (COALESCE 처리) → NULL 값이 아닌 분기들의 평균을 구하고 싶습니다. (SIGN, COALESCE 처리) year Q1 Q2 Q3 Q4 2021 1000 1200 1100 1300 2022 1300 1000 1200 1500 2023 1300 1200 1000 select year, (coalesce(q1,0)+coalesce(q2,0)+coalesce(q3,0)+coalesce(q4,0))/(sign(coalesce(q1,0))+sign(coalesce(q2,0))+sign(coalesce(q3,..
-
[SQL] Primary key 쉽고 완벽하게 이해하기SQL 배우기 2023. 11. 27. 10:43
릴레이션 모델을 논리적 스키마로 표현할 때, contacts(id, name, email, phone, score) 밑줄이 그어진 속성을 보신 적이 있을 겁니다. 이것은 릴레이션에서 primary key를 표현하는 방법인데요, 릴레이션에서 가장 중요한 키는 primary key가 아닐까 감히 확신해봅니다! 오늘은 이렇게 중요한 primary 키에 대해서 알아보겠습니다. - primary key 의 정의 - primary key 의 특징 - 테이블 생성시 primary key 지정하는 두 가지 방식 Q. primary key 의 정의 A. candidate key 중에서 릴레이션의 특정 행을 고유하게 식별하기 위해 DBMS에서 선택하여 사용하는 키 (▶︎ candidate key : 릴레이션에서 특정 행을..