πŸŒ»ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ SQL 고득점 Kit [GROUP BY]

윀건희(Guny)Β·2020λ…„ 10μ›” 15일
0

Database

λͺ©λ‘ 보기
4/7
post-thumbnail
post-custom-banner

SQL 고득점 Kit - GROUP BY

πŸ“šλ‚˜λž‘ 이름이 같은 μ‚¬λžŒμ€ λͺ‡ λͺ…μΌκΉŒμš”? 데이터λ₯Ό λ¬Άκ³  평균값을 κ³„μ‚°ν•΄λ³΄μ„Έμš”.


βœ…κ³ μ–‘μ΄μ™€ κ°œλŠ” λͺ‡ 마리 μžˆμ„κΉŒ

동물 λ³΄ν˜Έμ†Œμ— λ“€μ–΄μ˜¨ 동물 쀑 고양이와 κ°œκ°€ 각각 λͺ‡ λ§ˆλ¦¬μΈμ§€ μ‘°νšŒν•˜λŠ” SQL문을 μž‘μ„±ν•΄μ£Όμ„Έμš”. μ΄λ•Œ 고양이λ₯Ό κ°œλ³΄λ‹€ λ¨Όμ € μ‘°νšŒν•΄μ£Όμ„Έμš”.

SELECT ANIMAL_TYPE, COUNT(*) count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE


βœ…λ™λͺ… 동물 수 μ°ΎκΈ°

동물 λ³΄ν˜Έμ†Œμ— λ“€μ–΄μ˜¨ 동물 이름 쀑 두 번 이상 쓰인 이름과 ν•΄λ‹Ή 이름이 쓰인 횟수λ₯Ό μ‘°νšŒν•˜λŠ” SQL문을 μž‘μ„±ν•΄μ£Όμ„Έμš”. μ΄λ•Œ κ²°κ³ΌλŠ” 이름이 μ—†λŠ” 동물은 μ§‘κ³„μ—μ„œ μ œμ™Έν•˜λ©°, κ²°κ³ΌλŠ” 이름 순으둜 μ‘°νšŒν•΄μ£Όμ„Έμš”.

SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT >= 2
ORDER BY NAME


βœ…μž…μ–‘ μ‹œκ° κ΅¬ν•˜κΈ°(1)

λ³΄ν˜Έμ†Œμ—μ„œλŠ” λͺ‡ μ‹œμ— μž…μ–‘μ΄ κ°€μž₯ ν™œλ°œν•˜κ²Œ μΌμ–΄λ‚˜λŠ”μ§€ μ•Œμ•„λ³΄λ € ν•©λ‹ˆλ‹€. 09:00λΆ€ν„° 19:59κΉŒμ§€, 각 μ‹œκ°„λŒ€λ³„λ‘œ μž…μ–‘μ΄ λͺ‡ κ±΄μ΄λ‚˜ λ°œμƒν–ˆλŠ”μ§€ μ‘°νšŒν•˜λŠ” SQL문을 μž‘μ„±ν•΄μ£Όμ„Έμš”. μ΄λ•Œ κ²°κ³ΌλŠ” μ‹œκ°„λŒ€ 순으둜 μ •λ ¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) < 20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)


βœ…μž…μ–‘ μ‹œκ° κ΅¬ν•˜κΈ°(2)

λ³΄ν˜Έμ†Œμ—μ„œλŠ” λͺ‡ μ‹œμ— μž…μ–‘μ΄ κ°€μž₯ ν™œλ°œν•˜κ²Œ μΌμ–΄λ‚˜λŠ”μ§€ μ•Œμ•„λ³΄λ € ν•©λ‹ˆλ‹€. 0μ‹œλΆ€ν„° 23μ‹œκΉŒμ§€, 각 μ‹œκ°„λŒ€λ³„λ‘œ μž…μ–‘μ΄ λͺ‡ κ±΄μ΄λ‚˜ λ°œμƒν–ˆλŠ”μ§€ μ‘°νšŒν•˜λŠ” SQL문을 μž‘μ„±ν•΄μ£Όμ„Έμš”. μ΄λ•Œ κ²°κ³ΌλŠ” μ‹œκ°„λŒ€ 순으둜 μ •λ ¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

SET @hours = -1
SELECT
(@hours := @hours + 1) AS HOUR,
(SELECT COUNT(*)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) = @hours) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE @hours <23

  • SET μ΄λΌλŠ” κ±Έ μ²˜μŒλ΄€λ‹€...
  • SQL λ¬Έλ²•μ—μ„œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” 방법이닀 μœ„μ—μ„œ @hoursλΌλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  := 둜 값을 λ³€κ²½ν•œλ‹€.
  • MySQL 메뉴얼에 λ”°λ₯΄λ©΄, 이런 문법은 μ˜ˆμƒν•˜λŠ” 닡을 얻을 μˆ˜λŠ” μžˆμ§€λ§Œ, 정확성이 κ²€μ¦λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— ꢌμž₯ν•˜μ§„ μ•ŠλŠ”λ‹€κ³  ν•œλ‹€...
  • μ•Œμ•„λ§Œλ‘μž
profile
개발자
post-custom-banner

0개의 λŒ“κΈ€