12 Fri

๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ๊ณ ๊ธ‰ SQL

์„œ๋ธŒ์ฟผ๋ฆฌ

  • ์ฟผ๋ฆฌ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์ฟผ๋ฆฌ

  • SELECT, FROM, WHERE์ ˆ์— ๋‹ค ์‚ฌ์šฉ ๊ฐ€๋Šฅ

    • SELECT๋Š” ๋ˆ„์ ํ•ฉ์„ ๊ตฌํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ

FROM์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ

SELECT daily_stats.week, AVG(daily_stats.incidents_daily)
FROM (
    SELECT week, date, COUNT(incident_id) AS Incidents_daily
    FROM crimes
    GROUP BY week, data
    ) daily_stats
GROUP BY daily_stats.week
  • ๊ฐ ์ฃผ์™€ ๋‚ ์งœ ๋ณ„๋กœ ๋ฒ”์ฃ„ ๋ฐœ์ƒ์„ ์ •๋ฆฌํ•œ ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•œ๋‹ค.

  • ์ฃผ์™€ ๋‚ ์งœ๋กœ ์ •๋ฆฌํ•œ ํ…Œ์ด๋ธ”์—์„œ ๋‹ค์‹œ ๋‚ ์งœ ๋ณ„๋กœ ๋ฒ”์ฃ„ ๋ฐœ์ƒ ๊ฑด์ˆ˜๋ฅผ ๋ณด๋Š” ์ฟผ๋ฆฌ์ด๋‹ค.

  • ์ด ๋•Œ ํ•˜๋ฃจ ํ‰๊ท  ๋ฒ”์ฃ„ ๋ฐœ์ƒ ๊ฑด์ˆ˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด AVG๋ฅผ ์ป์ง€๋งŒ, ํŠน์ • ๋‚ ์งœ์— ๋Œ€ํ•œ ๋ฒ”์ฃ„ ๋ฐœ์ƒ์ด ์—†์„ ๊ฒฝ์šฐ ์ด๋ฅผ 0์œผ๋กœ ๊ฐ„์ฃผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ NULL ๋ฐ์ดํ„ฐ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ‰๊ท ์„ ๊ตฌํ•  ๋•Œ ์ด๋ฅผ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.

    • EX) 1+ 2+ 3+0/4 ์ด ์•„๋‹Œ 1+2+3/3 ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์˜

WHERE์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ

  • 1~3 : date๊ฐ€ = ๋กœ ๋น„๊ต๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜์—ฌ์•ผ ํ•œ๋‹ค.

  • 5~8 : 5๊ฐœ์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ค๋ฏ€๋กœ IN ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ์Šต

  • MIN(date) : ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋‚ ์งœ, MAX(date) : ๊ฐ€์žฅ ์ตœ์‹  ๋‚ ์งœ

HackerRank TopEarners

๋˜๋Š” having ์ ˆ์„ ์ด์šฉํ•ด์„œ

HackerRank Challenges

With

  • ์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต๋œ๋‹ค. ์žฌ์‚ฌ์šฉ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ๋ฒ•์œผ๋กœ With ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

BETWEEN์„ ์กฐ์ธ์กฐ๊ฑด์œผ๋กœ ์“ฐ๊ธฐ

HackerRank The Report

2๊ฐœ ์ด์ƒ ์…€ํ”„์กฐ์ธํ•˜๊ธฐ

LeetCode 180

Last updated

Was this helpful?