์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SwiftUI Tutorials
- ์ฐ์ํ์ค๋ถ๋ถ์์ด์ํฉ
- 0์ด๋์ด์๋๊ธธ
- Swift
- BFS
- SwiftUI ํํ ๋ฆฌ์ผ
- IOS
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ๋์ ๊ณํ๋ฒ
- HAVIT
- concurrency
- GroupBy
- ํ๋ก๊ทธ๋๋จธ์ค
- dfs
- ์ด์งํ์
- algoritm
- ๊ณ ๋์ kit
- algorithm
- ๊ธฐ์ด๋ฌธ๋ฒ
- GCD
- Til
- binarySearch
- SOPT
- SQL
- APPJAM
- duno
- DynamicProgramming
- discardableResult
- SwiftUI
- URLSession
- Today
- Total
suvera-dev ๐ฅฆ
SQL) ํ๋ก๊ทธ๋๋จธ์ค SQL ๊ณ ๋์ kit - GROUP BY ๋ณธ๋ฌธ
SQL) ํ๋ก๊ทธ๋๋จธ์ค SQL ๊ณ ๋์ kit - GROUP BY
suvera 2022. 4. 15. 03:40
1. ๊ณ ์์ด์ ๊ฐ๋ ๋ช๋ง๋ฆฌ ์์๊น
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ค ๊ณ ์์ด์ ๊ฐ๊ฐ ๊ฐ๊ฐ ๋ช ๋ง๋ฆฌ์ธ์ง ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
์ด๋ ๊ณ ์์ด๋ฅผ ๊ฐ๋ณด๋ค ๋จผ์ ์กฐํํด์ฃผ์ธ์.
SELECT ANIMAL_TYPE , COUNT(ANIMAL_TYPE)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
2. ๋๋ช ๋๋ฌผ ์ ์ฐพ๊ธฐ
๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ด๋ฆ ์ค ๋ ๋ฒ ์ด์ ์ฐ์ธ ์ด๋ฆ๊ณผ ํด๋น ์ด๋ฆ์ด ์ฐ์ธ ํ์๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์.
์ด๋ ๊ฒฐ๊ณผ๋ ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์ง๊ณ์์ ์ ์ธํ๋ฉฐ, ๊ฒฐ๊ณผ๋ ์ด๋ฆ ์์ผ๋ก ์กฐํํด์ฃผ์ธ์.
- ์ด๋ฆ์ด ์๋ ๋๋ฌผ ์ ์ธ, ์ด๋ฆ๋ณ๋ก ๊ทธ๋ฃน ๋ฌถ์ด์ฃผ๊ณ , HAVING ์ ์์ 2๋ฒ ์ด์ ์ฐ์ธ๊ฑฐ ๊ฑธ๋ฌ์ฃผ๊ธฐ.
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
3. ์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(1)
๋ณดํธ์์์๋ ๋ช ์์ ์ ์์ด ๊ฐ์ฅ ํ๋ฐํ๊ฒ ์ผ์ด๋๋์ง ์์๋ณด๋ ค ํฉ๋๋ค. 09:00๋ถํฐ 19:59๊น์ง, ๊ฐ ์๊ฐ๋๋ณ๋ก ์ ์์ด ๋ช ๊ฑด์ด๋ ๋ฐ์ํ๋์ง ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ์๊ฐ๋ ์์ผ๋ก ์ ๋ ฌํด์ผ ํฉ๋๋ค.
SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <= 19
GROUP BY HOUR(DATETIME)
ORDER BY HOUR
- HOUR(DATETIME) ์ผ๋ก ์๊ฐ๋ง ๊ฐ์ ธ์ฌ ์ ์์. ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋ณ๋ก ๊ทธ๋ฃนํํ๊ณ
WHERE ์ ์์ 9์ ์ด์ 19์์ดํ๋ก ์กฐ๊ฑด ๊ฑธ๊ธฐ. + ์ ๋ ฌ
4. ์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(2)
๋ณดํธ์์์๋ ๋ช ์์ ์ ์์ด ๊ฐ์ฅ ํ๋ฐํ๊ฒ ์ผ์ด๋๋์ง ์์๋ณด๋ ค ํฉ๋๋ค. 0์๋ถํฐ 23์๊น์ง, ๊ฐ ์๊ฐ๋๋ณ๋ก ์ ์์ด ๋ช ๊ฑด์ด๋ ๋ฐ์ํ๋์ง ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ์๊ฐ๋ ์์ผ๋ก ์ ๋ ฌํด์ผ ํฉ๋๋ค.
๋ ๋ฒจ 4 ๋ฌธ์
0๋ถํฐ 23์๊น์ง ์ถ๋ ฅํด์ผ๋๋๋ฐ ํด๋น ๋ฐ์ดํฐ์์๋ 7์๋ถํฐ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ค.
0-6์๊น์ง์ ๊ฒฐ๊ณผ๋ ์ถ๋ ฅ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์์ฑํด์ค์ผ ํ๋ค !
์ด๋ SET ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค
SET์ ์ด๋ค ๋ณ์์ ํน์ ๊ฐ์ ํ ๋นํ ๋ ์ฐ๋ ๋ช ๋ น์ด !
SET @HOUR = -1;
SELECT (@HOUR := @HOUR +1) AS HOUR
FROM ANIMAL_OUTS
WHERE @HOUR < 23;
๋ค์ ์ฝ๋๋ @HOUR๋ณ์์ -1์ ํ ๋นํ ํ
22๊น์ง +1์ฉ ๋ํด์ค๋ค๋ ๋ป์ด๋ค!
@๋ ๋ณ์๋ช ์์ ๋ฃ์ด์ค๋ค.
WHERE์ ์ธ 23 ๋ฏธ๋ง์ผ๋๊น์ง ๋์ ๋์ด
HOUR์ด 22 ๊ฐ ๋ ๋ ๋ฉ์ถ๋ฉฐ 22๋ 22+1 ์ธ 23์ด ๋๋ค.
์ฌ๊ธฐ์ ์ฃผ์๋ฅผ ํด์ผ ํ๋ค.
SET ์ฌ์ฉ์ ๋์ ์ฐ์ฐ์๋ฅผ '='๋ฅผ ์ฌ์ฉํ๊ณ
๊ทธ ์ธ์๋ := ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด 0๋ถํฐ 23๊น์ง ์๊ฐ ๋ฐ์ดํฐ๊ฐ ์กฐํ๋๋ค !
SET @HOUR := -1; # ๋ณ์์ ์ธ
SELECT (@HOUR := @HOUR +1) AS HOUR,
(SELECT COUNT(*)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) = @HOUR) AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR < 23
์๋ธ ์ฟผ๋ฆฌ๋ก ์๊ฐ์ ๋ฐ๋ฅธ COUNT๋ฅผ ์ง๊ณํด์ฃผ๋๋ฐ
WHERE HOUR(DATETIME) = @HOUR ์ฌ๊ธฐ์
ANIMAL_OUTS ํ ์ด๋ธ์ ์๋ DATETIME ๋ณ์์
@HOUR ๋ณ์๊ฐ ๋์ผํ ์๊ฐ์ ์กฐ๊ฑด์ผ๋ก ๊ฑธ์ด์ ์นด์ดํธ๋ฅผ ์งํํ๋ค.
'Algorithm > CodingTest - SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL) ํ๋ก๊ทธ๋๋จธ์ค SQL ๊ณ ๋์ Kit - JOIN (2) | 2022.04.16 |
---|---|
SQL) ํ๋ก๊ทธ๋๋จธ์ค SQL ๊ณ ๋์ Kit - IS NULL (0) | 2022.04.15 |
SQL) ํ๋ก๊ทธ๋๋จธ์ค SQL ๊ณ ๋์ Kit - SUM, MIN, MAX (0) | 2022.04.15 |
SQL) ํ๋ก๊ทธ๋๋จธ์ค SQL ๊ณ ๋์ Kit - Select (10) | 2022.04.15 |