ALL (300) 썸네일형 리스트형 [LeetCode] 185. Department Top Three Salaries (MySQL) 문제 부서 별 고소득자 구하기 해당 부서의 top 3에 해당하는 급여를 받는 직원 구하기 코드 1. 부서 별 고소득자를 구해야하기 때문에 순위 정하는 함수 DENSE_RANK() 사용 top3에 해당하는 직원이 아니라 top3 급여를 받는 직원을 구하면 되기 때문에 DENSE_RANK()를 사용했다. DENSE_RANK()와 RANK() 차이점은 RANK()는 2명이 90000이고 90000이 max값이면 둘 다 1위가 되고 다음 순위가 3위가 되는데 DENSE_RANK()는 1위가 2번이면 둘 다 1위가 되고 그 다음 순위는 2위가 된다. SELECT departmentId , name , salary , DENSE_RANK() OVER (partition by departmentId ORDER BY .. [LeetCode] 180. Consecutive Numbers (MySQL) 문제 연속해서 세 번 이상 나타나는 모든 숫자를 찾아라 순서 상관없음 코드 Join select distinct a.num as ConsecutiveNums from logs a inner join logs b on a.id = b.id+1 inner join logs c on a.id = c.id+2 where a.num = b.num and a.num = c.num 너무 하드 코딩인 것 같다.. 처음에 join 조건을 between 으로 주려다가 num만 값을 빼오는 방법을 모르겠어서 에라 모르겠다 하고 했는데 통과해서 어안이 벙벙함 Lead select distinct sub.num as ConsecutiveNums from ( select id , num , lead(num, 1) over (or.. [MySQL] 윈도우 함수 윈도우 함수 sum, max, min 등을 그룹별로 구할 수 있는 함수 GROUP BY와는 좀 다르다 한 줄로 요약을 해서 보여주는 게 아니라 각각의 row에 결과물들을 보여준다 사용할 수 있는 함수 🔗 AVG() BIT_AND() BIT_OR() BIT_XOR() COUNT() JSON_ARRAYAGG() JSON_OBJECTAGG() MAX() MIN() STDDEV_POP(), STDDEV(), STD() STDDEV_SAMP() SUM() VAR_POP(), VARIANCE() VAR_SAMP() 형태 함수(컬럼) OVER (PARTITION BY 컬럼 ORDER BY 컬럼) 집계 함수 MAX(컬럼) OVER (PARTITION BY 컬럼) 각 부서별로 가장 많이 버는 사람 찾기 SELECT Id.. [MySQL] 서브쿼리 Subquery 서브쿼리(Subquery) Select 절 서브쿼리 누적합과 관련됨 후에 추가 예정 From 절 서브쿼리 가상의 테이블을 하나 더 만든다고 생각하기 FROM 절 안에 있는 것이 서브쿼리 /*sub라는 이름으로 가상의 테이블 만들기*/ SELECT sub.sub_column FROM ( SELECT sub_column FROM sub_table ) sub GROUP BY sub.sub_column Where 절 서브쿼리 비교연산자 = 사용 > 서브쿼리의 결과물이 1개여야함 SELECT * FROM test WHERE column = (SELECT MIN(column) FROM test) IN 사용 > 서브쿼리의 결과물이 1개 이상일 때도 사용 가능 SELECT * FROM test WHERE column .. 이전 1 ··· 18 19 20 21 22 23 24 ··· 75 다음