본문 바로가기
[SQL] 순번 만들기_한 개의 필드 [참고도서] [SQL 레벨업-DB 성능 최적화를 위한 SQL 실전 가이드] - https://www.yes24.com/Product/Goods/24089836 SQL 레벨업 - YES24 실무에 필요한 SQL 최적화!〈SQL 첫걸음〉으로 성공적인 입문을 마치고, 다음 고지를 바라보는 이들을 위한 한 권!이 책은 고성능 SQL 작성 방법을 초보자 눈높이에 맞춰 다양한 예제를 통해 설명 www.yes24.com 1. 기본 키가 한 개의 필드일 경우 예시 테이블 -- ROWNUMBER 함수 구현 가능 버전 select student_id, ROWNUMBER() OVER (order by student_id) as seq from Weights; -- MYSQL 등 ROWNUMBER 구현 불가능 버전 selec.. 2023. 7. 9.
[책 리뷰] SQL 레벨업 책 소개 도서명 : SQL 레벨업-DB 성능 최적화를 위한 SQL 실전 가이드 URL : https://www.yes24.com/Product/Goods/24089836 SQL 레벨업 - YES24 실무에 필요한 SQL 최적화!〈SQL 첫걸음〉으로 성공적인 입문을 마치고, 다음 고지를 바라보는 이들을 위한 한 권!이 책은 고성능 SQL 작성 방법을 초보자 눈높이에 맞춰 다양한 예제를 통해 설명 www.yes24.com 추천 이유 쿼리 튜닝에 대한 상세한 예시와 설명이 있어, SQL 입문 후 지식을 넓히는 것에 도움 어떻게 쿼리를 짜야 조회속도를 빠르게 바꿀 수 있는가 등에 대한 내용 기본적인 쿼리팁도 많아 현업에서 쓰기 편함 2023. 7. 9.
[SQL] Where 절에 서브쿼리 사용하기 팁 조건 절에 특정 일자와 일치하는 값을 여러 개 설정할 때, `=` 기호 대신 `IN`을 써서 사용 예시 설명 특정 일자를 만족하는 컬럼을 조회하고 싶을 때, MIN이나 MAX와 같은 함수는 등위 연산자를 사용해야 하지만, IN을 사용하면 특정 일자를 만족하는 여러 값을 동시에 조회 가능 -- MIN, MAX 사용 select * from table where date = (select min(date) from table where id = 40) and date = (select min(date) from table where id = 50) -- IN 사용 select * from table where date in (select date from table where id in (40,50)) 2023. 2. 11.
[SQL] 데이터 집계_실수 실수 유형 데이터 중 일부가 수집되지 않아, 집계 시 avg 함수가 제대로 작동하지 않는 경우 배경 설명 예시 2023년 1월부터 2월까지 데이터를 수집 이때 1월 내에 설날이 껴 있어서 데이터 자체가 생성되지 않음 때문에 주별 집계 시 주 7일로 계산해서 평균을 나눠야 하지만 설을 제외한 5일로만 계산 ex) '23.01.23. ~ '23.01.29. 사이에 발생한 데이터 실제 데이터 : sum([3,4,2,4,5,7]) / 5 계산하고 싶은 데이터 : sum([0,0,3,4,2,4,5,7]) / 7 해결 방안 데이터 수집 일자를 CTE로 만들어 LEFT JOIN 2023. 2. 11.
[LeetCode] 196.Delete Duplicate Emails 문제 테이블 내에 이메일이 중복되는 데이터가 있다면, id가 가장 작은 데이터만 출력하는 쿼리를 작성하라 정답 -- 본인 풀이 delete from person where id not in ( select id from ( select min(id) as id, email from person group by email ) as A ) -- 문제풀이 delete p1 from person p1,person p2 where p1.email=p2.email and p1.id>p2.id; 2023. 2. 6.
[LeetCode] 627.Swap Salary 문제 성별이 f로 되어있는 사람은 m으로, m인 사람은 f로 데이터를 수정 update 구문을 이용하여 데이터 자체를 바꿀 것 정답 UPDATE Salary set sex = (case when sex ='m' then 'f' else 'm' end) 2023. 2. 6.