2024/12 154

[241206] TIL

1. DISTINCT(중복제거) 활용하기중복 제거를 하지 않으면 우유, 우유일 경우에도 2가 나와버림 (DISTINCT을 사용하지 않는다면?)HAVING SUM(CASE WHEN NAME = 'Milk' THEN 1 ELSE 0 END) > 0AND SUM(CASE WHEN NAME = 'Yogurt' THEN 1 ELSE 0 END) > 0HAVING에 조건을 나열 2. IN 연산자로 (조건 OR 조건) 대체하기  J.TOTAL_ORDER와 F.TOTAL_ORDER를 각각 SUM 해줘서 더해혹은 더해준 뒤에 SUM 해줘도 되고..해당 부분을 ORDER BY 절에 바로 써도 되지만 가독성이 나쁨  JOIN 이 일반적으로 서브쿼리 이용하는 것보다 효율적임다만 조인 조건이 많아지면 가독성이 나빠지니 대규모 ..

TIL 2024.12.06

[241203] TIL

SELECT CAR_ID      , CASE         WHEN MAX('2022-10-16' BETWEEN START_DATE AND END_DATE) = 1 THEN '대여중'         ELSE '대여 가능'         END AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID ORDER BY CAR_ID DESC; → 각 행에 대해 '2022-10-16' BETWEEN START_DATE AND END_DATE 이면 1을 반환, 그렇지 않으면 0을 반환 SELECT CAR_ID      , CASE         WHEN COUNT(CASE WHEN DATE('2022-10-16') BETWEEN START_D..

TIL 2024.12.03