2025/07 4

GROUP BY 후 조건 개수 세기: SUM() vs COUNT() 어떤 걸 써야 할까?

[프로그래머스 관련문제] : 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr □ 문제요약 위 문제의 조건을 정리하자면 아래와 같다.2022-10-16이 start_date와 end_date 사이에 있으면 → '대여중'해당 날짜에 대여 기록이 없으면 → '대여 가능'차량별로 하나라도 대여중이면 '대여중', 전부 대여 가능이면 '대여 가능'car_id로 정렬여기에서 집중 해야 할 부분은 차량별 하나라도 대여중이면 '대여중'이라고 표시하는 것이다.이 글에서는 왜 COUNT(AVAILABILITY = '대여중') 이라는 직관적인 로직을 사용하지 않고 SUM 함수..

SQL 2025.07.03

자바 메모리 구조

□ JVM 실행 순서 .java → .class → 메모리(ClassLoader → 런타임 영역) .java 파일을 컴파일러를 통해 바이너리 형태인 .class 파일로 변환.class 파일을 JVM 의 ClassLoader에게 보낸다.ClassLoader에서 클래스 파일을 JVM 런타임 영역으로 로드하여 메모리에 올린다. □ JVM의 런타임 영역 - 메모리 영역들을 실행 시점(runtime)에 구성 - JVM은 OS로 부터 메모리를 할당 받고, 할당 받은 메모리를 자바 프로그램에 맞게 여러개의 영역으로 나누어 사용한다.public class Memorys { public static int number = 0; // static 변수 [Static 메모리] String str = ""; ..

JAVA 2025.07.01

[MYSQL] SQL의 논리적 실행 순서 예외(GROUP BY, HAVING)

□ 일반적으로 SQL에서 논리적 실행 순서는 아래와 같다.FROMWHEREGROUP BYHAVINGSELECTORDER BYLIMIT□ 다만, 최적화와 구현상 처리를 위해 예외를 둔 경우가 있음. B.3.4.4 Problems with Column AliasesAn alias can be used in a query select list to give a column a different name. You can use the alias in GROUP BY, ORDER BY, or HAVING clauses to refer to the column: ※ 예외가 있다고 하더라도 여전히 where 절에서는 select의 alias가 계산되지 않기때문에 위 예외가 적용되지 않는다....Standard SQL..

SQL 2025.07.01

[MYSQL] 날짜를 계산하는 주요 함수

□ DATEDIFF(date1, date2) - 두 날짜 간의 '日' 차이 - 식 : date1 - date2 - 리턴값 : 정수 'DAY'SELECT DATEDIFF('2025-07-01', '2025-06-28') -- 3 □ TIMESTAMPDIFF(unit, datetime1, datetime2) - 두 날짜 간의 unit 차이 - unit 종류 : SECOND, MINUTE, HOUR, DAY, MONTH, YEAR - 리턴값 : 정수SELECT TIMESTAMPDIFF(DAY, '2025-01-01', '2025-01-10'); -- 9 □ DATE_ADD(date, INTEVAL n unit) - 특정 unit 만큼 날을 더함SELECT DATE_ADD('2025-07-01', ..

SQL 2025.07.01