본문 바로가기

728x90

MySQL

[MySQL] 프로그래머스 SQL 문제 해결하면서 몰랐던 개념 정리 (3) 자동차 대여 기록에서 장기/단기 구분하기(DATEDIFF) DATEDIFF(종료일, 시작일) 종료일과 시작일 사이의 기간을 반환해 주는 함수 DATE_ADD(기준 날짜, INTERVAL) 날짜 or 시간 더하기 DATE_SUB(기준 날짜, INTERVAL) 날짜 or 시간 빼기 DATEDIFF(종료일, 시작일) 두 날짜 간 일수 계산  TIMEDIFF(종료일, 시작일) 두 날짜 간 시간 계산PERIOD_DIFF(시작일, 종료일) 두 날짜간 개월 계산TIIMESTAMPDIFF(unit, 시작일, 종료일)시간, 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수 더보기-- DATE_ADD()SELECT DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 YEAR) -- 20.. 더보기
[MySQL] 프로그래머스 SQL 문제 해결하면서 몰랐던 개념 정리 (2) 멸종 위기의 대장균 찾기 (RECURSIVE + OUTER JOIN) 세대를 구해야 하는 과정이 있어서 재귀 쿼리를 사용해야 하는 것까진 알았지만, 자식 세대가 없는 대장균 정보를 추출하기 위해 OUTER JOIN을 써야 되겠다는 생각을 했는데 막상 적용이 잘 안 됐다. 그래도 결과 쿼리 보면서 어찌어찌해서 제출을 했는데 테스트 케이스에서 1개 틀렸다.  그러다가 재귀 쿼리간 OUTER JOIN을 사용하는 방법을 떠올렸고, 시도했더니 원하는 대로 결과가 나왔다.  덕분에 재귀쿼리에 대해 좀 더 이해할 수 있는 시간이 되었다.   특정 옵션이 포함된 자동차 리스트 구하기(LIKE + %) 특정 문자열을 포함하는지 체크하는 예약어 → LIKE ('% ~ %')   루시와 엘라 찾기(IN)칼럼 안에 특정값과 .. 더보기
[MySQL] 프로그래머스 SQL 문제 해결하면서 몰랐던 개념 정리 (1) 조건에 맞는 개발자 찾기 비트 연산자 '&'를 사용하여 조건을 추가 두 정수 A, B에 대하여A & B: 이진수로 표현한 A에 이진수로 표현한 B가 포함되는 지 각 비트 자리에 AND 연산을 수행하는 연산자. 만약 포함관계라면 1이상의 값이 나온다. 예를 들어 두 수가 4, 66일 때, & 연산자를 사용하면 결과값은 0이 나와서 66은 4를 포함하지 않는 경우가 된다. 반면에, 두 수가 4, 68이면 결과값은 4가 나와서 68은 4를 포함하는 경우가 된다 가장 큰 물고기 10마리 구하기 ROW_NUMBER() OVER(정렬 기준): 순위 함수의 한 종류(RANK, NTILE, DENSE_RANK, ROW_NUMBER가 있음, NTILE은 ORACLE만 지원): 각 행에 고유한 연속적인 숫자를 부여하는 함.. 더보기