02/05 SQL ๋ฌธ์ œํ’€์ด(๐ŸŒŸ๐ŸŒŸ)

Data Architect / Engineerยท2024๋…„ 2์›” 5์ผ
1

1์ผ_1SQL

๋ชฉ๋ก ๋ณด๊ธฐ
25/63
post-thumbnail

๋ฌธ์ œ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๋ฌธ์ œ
  • ์ž๋™์ฐจ ๋Œ€์—ฌ ๊ธฐ๋ก์—์„œ ๋Œ€์—ฌ์ค‘ / ๋Œ€์—ฌ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๊ตฌ๋ถ„ํ•˜๊ธฐ / ๋ ˆ๋ฒจ 3
  • ๋ฌธ์ œ ๋‚ด์šฉ : ํ•˜๋‹จ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ [๋งํฌ]


๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ Query

SELECT CAR_ID
     , CASE WHEN MIN(START_DATE) <= '2022-10-16'
     			 AND MIN(END_DATE) >= '2022-10-16' THEN '๋Œ€์—ฌ์ค‘' 
            ELSE '๋Œ€์—ฌ ๊ฐ€๋Šฅ' END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE END_DATE >= '2022-10-16'
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;
  • ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ธฐ์ค€์ผ์ด ๋˜๋Š” '2022-10-16' ์ด์ „์— ๋Œ€์—ฌ๊ฐ€ ๋๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ๋Œ€์ƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ, WHERE์ ˆ์— END_DATE >= '2022-10-16' ์กฐ๊ฑด์„ ํ†ตํ•ด ํ•„ํ„ฐ๋งํ•œ๋‹ค.

  • ์ฐจ๋Ÿ‰๋ณ„ ๋Œ€์—ฌ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด์•ผ ํ•˜๋ฏ€๋กœ, GROUP BY๋ฅผ ํ†ตํ•ด 'CAR_ID'๋ณ„๋กœ ๊ทธ๋ฃนํ•‘ํ•œ๋‹ค.

  • ๐ŸŒŸ๐ŸŒŸ'2022-10-16' ์ดํ›„์˜ ๋Œ€์—ฌ ๋ฐ์ดํ„ฐ๋“ค ์ค‘, ์ฐจ๋Ÿ‰๋ณ„๋กœ ๊ฐ€์žฅ '2022-10-16'์™€ ๊ฐ€๊นŒ์šด ๋Œ€์—ฌ ๋ฐ์ดํ„ฐ๋“ค๋งŒ ์‚ฌ์šฉ (์ฆ‰, ๋ฏธ๋ž˜์˜ ์—ฌ๋Ÿฌ ๋Œ€์—ฌ ์˜ˆ์•ฝ๋“ค ์ค‘, ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๋Œ€์—ฌ ์˜ˆ์•ฝ๋งŒ ์‚ฌ์šฉ)
    ์ด ๋ฌธ์ œํ’€์ด์˜ ํ•ต์‹ฌ์ด๋ผ๊ณ  ์ƒ๊ฐ.

  • CASE WHEN THEN ๊ตฌ๋ฌธ์„ ํ†ตํ•ด, '2022-10-16' ์ผ์ž๊ฐ€ ์ฐจ๋Ÿ‰๋ณ„ MIN(START_DATE)์™€ MIN(END_DATE) ์‚ฌ์ด์— ์žˆ์œผ๋ฉด '๋Œ€์—ฌ ์ค‘', ์•„๋‹ˆ๋ผ๋ฉด(ELSE) '๋Œ€์—ฌ ๊ฐ€๋Šฅ'์œผ๋กœ ์ถœ๋ ฅ

  • ORDER BY ์‚ฌ์šฉํ•˜์—ฌ 'CAR_ID' ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

profile
์งˆ๋ฌธ์€ ๊ณ„์†๋ผ ์•„์˜ค์—

0๊ฐœ์˜ ๋Œ“๊ธ€