일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 서브쿼리
- 데이터리안실전반
- leetcode
- leetcode문풀
- 문풀
- 파이썬
- 데이터리안넥스트레벨챌린지
- SQL
- 프로그래머스
- join
- 오블완
- 프로그래머스문풀
- 활성사용자수
- 약수구하기
- 데이터리안
- 코테준비
- 티스토리챌린지
- SQL테스트
- 데벨챌
- sql50
- 파이썬문풀
- 그로스해킹
- mysql
- 윈도우함수
- SQL고득점KIT
- levle1
- with절
- sql문풀
- 위키독스
- 셀프조인
- Today
- Total
목록sql50 (5)
꿈은 데이터분석가, 취미는 계획

출처[Leetcode] : https://leetcode.com/problems/department-top-three-salaries/description/문제: 부서별 급여 top3의 직원이름과 급여를 조회(동일 급여로 순위 중복이 발생하는 것을 포함)DENSE_RANK + PARTITION BYWITH 절 (top3_salary)DENSE_RANK() 윈도우 함수를 사용하여 departmentID별로 급여(salary)가 높은 순서대로 순위 지정같은 급여를 받는 경우 동일한 순위를 부여INNER JOINEmployee 테이블(s)과 Department 테이블(d)을 departmentID = id 조건으로 조인하여 부서명을 가져오기최종 SELECT부서명(Department), 직원명(Employee)..

출처: [leetcode - SQL50] : 1341. Movie Rating 문제: 동일한 횟수나 평점이 나온 경우 이름을 기준으로 오름차순하여 1개 만 선택ORDER BY로 정렬하여 찾기1) 동점이 나올 경우 유저 이름 순으로 1순위를 선택하므로, 유저이름이 있는 users테이블과 movierating테이블을 join2) name으로 group by하여 이름이 나온 횟수 = 영화를 본 횟수를 count하여 내림차순, 이름순으로 오름차순3) LIMIT1으로 가장 횟수가 큰 유저의 이름을 선택4) 동일한 방식으로 평점이 가장 높은 영화 이름을 선택5) 이름에 대한 별칭을 results 동일하게 주고 UNION ALL로 통합하여 결과 출력 (SELECT name AS resultsFROM MovieR..

출처: [leetcode - SQL50] : 626. Exchange Seats 문제: 연속된 학생의 좌석 ID를 교환(학생 수가 홀수인 경우 마지막은 교환없이 반환)1. 홀수, 짝수 이용하기1) id를 2로 나눴을 때 나머지를 기준으로 홀수면 id +1을, 짝수면 id-1을 해서 순서를 변경2) id가 max값인 경우 else로 그대로 출력SELECT CASE WHEN id % 2 = 1 AND id + 1 2. IF 활용하기1번과 동일하게 홀수, 짝수를 활용하는 방법=> case when이 아닌, if를 활용하는 방법SELECT IF(ID % 2 = 0, ID - 1, IF(ID = (SELECT MAX(ID) FROM SEAT), ID, ID + 1)) AS ID,..

출처: [leetcode - SQL50] : 1045. Customers Who Bought All Products 서브쿼리와 HAVING 조건 절 이용하기cutomer_id별로 구매한 제품의 수를 센 것과 서브쿼리로 전체 제품의 종류 수를 센 것이 같으면 조회SELECT customer_id FROM Customer GROUP BY customer_idHAVING COUNT(distinct product_key) = (SELECT COUNT(product_key) FROM Product)

출처: [leetcode - SQL50] : 1484. Group Sold Products By The Date 문제: 날짜별 판매된 제품 종류의 수, 제품 이름1. GROUP _CONCAT 활용하기날짜별 판매제품 테이블에서, 날짜별 판매된 제품의 종류 수와 이름을 출력하는 쿼리 GROUP_CONCAT은 여러 행에 있는 값을 하나의 문자열로 결합해준다. GROUP_CONCAT (컬럼명 SEPARATOR '구분자') AS 별칭=> SEPARATOR를 지정하지 않는 경우 ','이 기본으로 사용된다. SELECT sell_date, COUNT(DISTINCT product) AS num_sold , GROUP_CONCAT(DISTINCT product ORDER BY pro..