๐ŸŒ 2-1-6. ORDER BY ์ ˆ

๊ณผ๋ชฉ2. SQL ๊ธฐ๋ณธ๊ณผ ํ™œ์šฉ

์ œ1์žฅ SQL ๊ธฐ๋ณธ

์ œ6์ ˆ ORDER BY ์ ˆ

1. ORDER BY ์ •๋ ฌ

ORDER BY ์ ˆ์€ SQL ๋ฌธ์žฅ์œผ๋กœ ์กฐํšŒ๋œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ค์–‘ํ•œ ๋ชฉ์ ์— ๋งž๊ฒŒ ํŠน์ • ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ORDER BY ์ ˆ์— ์นผ๋Ÿผ(Column)๋ช… ๋Œ€์‹ ์— SELECT ์ ˆ์—์„œ ์‚ฌ์šฉํ•œ ALIAS ๋ช…์ด๋‚˜ ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณ„๋„๋กœ ์ •๋ ฌ ๋ฐฉ์‹์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์ด ์ ์šฉ๋˜๋ฉฐ, SQL ๋ฌธ์žฅ์˜ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ๋‹ค.

SELECT ์นผ๋Ÿผ๋ช… [ALIAS๋ช…]
 FROM ํ…Œ์ด๋ธ”๋ช…
[WHERE ์กฐ๊ฑด์‹]
[GROUP BY ์นผ๋Ÿผ(Column)์ด๋‚˜ ํ‘œํ˜„์‹]
[HAVING ๊ทธ๋ฃน์กฐ๊ฑด์‹]
[ORDER BY ์นผ๋Ÿผ(Column)์ด๋‚˜ ํ‘œํ˜„์‹[ASC ๋˜๋Š” DESC]] ;

ODER BY ์ ˆ์—๋Š” 2๊ฐ€์ง€์˜ ์ •๋ ฌ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

  • ASC(Ascending) : ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค(๊ธฐ๋ณธ ๊ฐ’์ด๋ฏ€๋กœ ์ƒ๋žต ๊ฐ€๋Šฅ).

  • DESC(Descending) : ์กฐํšŒํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

[์˜ˆ์ œ] ORDER BY ์ ˆ์˜ ์˜ˆ๋กœ ์„ ์ˆ˜ ํ…Œ์ด๋ธ”์—์„œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„, ํฌ์ง€์…˜, ๋ฐฑ๋„˜๋ฒ„๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์‚ฌ๋žŒ ์ด๋ฆ„์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

์„ ์ˆ˜๋ช…
ํฌ์ง€์…˜
๋ฐฑ๋„˜๋ฒ„

ํžˆ์นด๋ฅด๋„

MF

10

ํ™ฉ์ฒ ๋ฏผ

MF

35

ํ™ฉ์—ฐ์„

FW

16

ํ™ฉ์Šน์ฃผ

DF

98

ํ™์ข…ํ•˜

MF

32

ํ™์ธ๊ธฐ

DF

35

ํ™์„ฑ์š”

DF

28

ํ™๋ณตํ‘œ

FW

19

ํ™๋ช…๋ณด

DF

20

ํ™๋„ํ‘œ

MF

9

ํ™๊ด‘์ฒ 

DF

4

ํ˜ธ์ œ๋ฆฌ์˜ค

DF

3

:

:

:

480 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[์˜ˆ์ œ] ORDER BY ์ ˆ์˜ ์˜ˆ๋กœ ์„ ์ˆ˜ ํ…Œ์ด๋ธ”์—์„œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„, ํฌ์ง€์…˜, ๋ฐฑ๋„˜๋ฒ„๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์„ ์ˆ˜๋“ค์˜ ํฌ์ง€์…˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์นผ๋Ÿผ๋ช…์ด ์•„๋‹Œ ALIAS๋ฅผ ์ด์šฉํ•œ๋‹ค.

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ] Oracle

์„ ์ˆ˜๋ช…
ํฌ์ง€์…˜
๋ฐฑ๋„˜๋ฒ„
ํ‚ค

์ •ํ•™๋ฒ”

173

์ฐจ์ƒ๊ด‘

186

์•ˆ์ต์ˆ˜

174

๋ฐฑ์˜์ฒ 

MF

22

173

์กฐํƒœ์šฉ

MF

7

192

์˜ฌ๋ฆฌ๋ฒ 

MF

29

190

๊น€๋ฆฌ๋„ค

MF

26

188

์Ÿˆ์Šค๋ฏผ

MF

33

186

:

:

:

480 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ์—์„œ ํฌ์ง€์…˜์— ์•„๋ฌด ๊ฒƒ๋„ ์—†๋Š” ๊ฐ’๋“ค์ด ์žˆ๋‹ค. ํ˜„์žฌ ์„ ์ˆ˜ ํ…Œ์ด๋ธ”์—์„œ ํฌ์ง€์…˜ ์นผ๋Ÿผ์— NULL์ด ๋“ค์–ด ์žˆ๋Š”๋ฐ ํฌ์ง€์…˜์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์—์„œ NULL ๊ฐ’์ด ์•ž์— ์ถœ๋ ฅ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€ Oracle์ด NULL ๊ฐ’์„ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด SQL Server๋Š” ๋ฐ˜๋Œ€์˜ ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„๋‹ค. ORDER BY ์ ˆ ์‚ฌ์šฉ ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • ๊ธฐ๋ณธ์ ์ธ ์ •๋ ฌ ์ˆœ์„œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ(ASC)์ด๋‹ค.

  • ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๊ฒฝ์šฐ์— ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ถœ๋ ฅ๋œ๋‹ค.

  • ๋‚ ์งœํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๊ฒฝ์šฐ ๋‚ ์งœ ๊ฐ’์ด ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฐ’์ด ๋จผ์ € ์ถœ๋ ฅ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '01-JAN-2012'๋Š” '01-SEP-2012'๋ณด๋‹ค ๋จผ์ € ์ถœ๋ ฅ๋œ๋‹ค.

  • Oracle์—์„œ๋Š” NULL ๊ฐ’์„ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์—, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ๋จผ์ € ์œ„์น˜ํ•œ๋‹ค.

  • ๋ฐ˜๋ฉด, SQL Server์—์„œ๋Š” NULL ๊ฐ’์„ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ๋จผ์ €, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ๋‹ค.

[์˜ˆ์ œ] ํ•œ ๊ฐœ์˜ ์นผ๋Ÿผ์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์นผ๋Ÿผ(Column)์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด๋ณธ๋‹ค. ๋จผ์ € ํ‚ค๊ฐ€ ํฐ ์ˆœ์„œ๋Œ€๋กœ, ํ‚ค๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ๋ฐฑ๋„˜๋ฒ„ ์ˆœ์œผ๋กœ ORDER BY ์ ˆ์„ ์ ์šฉํ•˜์—ฌ SQL ๋ฌธ์žฅ์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ, ํ‚ค๊ฐ€ NULL์ธ ๋ฐ์ดํ„ฐ๋Š” ์ œ์™ธํ•œ๋‹ค.

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

์„ ์ˆ˜๋ช…
ํฌ์ง€์…˜
๋ฐฑ๋„˜๋ฒ„
ํ‚ค

์„œ๋™๋ช…

GK

21

196

๊ถŒ์ •ํ˜

GK

1

195

๊น€์„

FW

20

194

์ •๊ฒฝ๋‘

GK

41

194

์ดํ˜„

GK

1

192

ํ™ฉ์—ฐ์„

FW

16

192

๋ฏธํŠธ๋กœ

FW

19

192

๊น€๋Œ€ํฌ

GK

31

192

์กฐ์˜์†

GK

44

192

๊น€์ฐฝ๋ฏผ

GK

1

191

์šฐ์„ฑ์šฉ

FW

22

191

์ตœ๋™์„

GK

1

190

์ƒค์ƒค

FW

10

190

13 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ํ‚ค๊ฐ€ 192cm์ธ ์„ ์ˆ˜๊ฐ€ 5๋ช… ์žˆ๋Š”๋ฐ, ORDER BY ์ ˆ์—์„œ ํ‚ค๊ฐ€ ํฐ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๊ณ , ํ‚ค๊ฐ€ ๊ฐ™์œผ๋ฉด ๋ฐฑ๋„˜๋ฒ„ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ผ๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ๋ฐฑ๋„˜๋ฒ„ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์นผ๋Ÿผ๋ช…์ด๋‚˜ ALIAS ๋ช…์„ ๋Œ€์‹ ํ•ด์„œ SELECT ์ ˆ์˜ ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ์ •์ˆ˜๋กœ ๋งคํ•‘ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. SELECT ์ ˆ์˜ ์นผ๋Ÿผ๋ช…์ด ๊ธธ๊ฑฐ๋‚˜ ์ •๋ ฌ ์กฐ๊ฑด์ด ๋งŽ์„ ๊ฒฝ์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ํ–ฅํ›„ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด๋‚˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ์นผ๋Ÿผ๋ช…์ด๋‚˜ ALIAS ๋ช…์„ ๊ถŒ๊ณ ํ•œ๋‹ค. ORDER BY ์ ˆ์—์„œ ์นผ๋Ÿผ๋ช…, ALIAS๋ช…, ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ๊ฐ™์ด ํ˜ผ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

[์˜ˆ์ œ] ORDER BY ์ ˆ์˜ ์˜ˆ๋กœ ์„ ์ˆ˜ ํ…Œ์ด๋ธ”์—์„œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„, ํฌ์ง€์…˜, ๋ฐฑ๋„˜๋ฒ„๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์„ ์ˆ˜๋“ค์˜ ๋ฐฑ๋„˜๋ฒ„ ๋‚ด๋ฆผ์ฐจ์ˆœ, ๋ฐฑ๋„˜๋ฒ„๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ํฌ์ง€์…˜, ํฌ์ง€์…˜๊นŒ์ง€ ๊ฐ™์€ ๊ฒฝ์šฐ ์„ ์ˆ˜๋ช… ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. BACK_NO๊ฐ€ NULL์ธ ๊ฒฝ์šฐ๋Š” ์ œ์™ธํ•˜๊ณ , ์นผ๋Ÿผ๋ช…์ด๋‚˜ ALIAS๊ฐ€ ์•„๋‹Œ ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ๋งคํ•‘ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

์„ ์ˆ˜๋ช…
ํฌ์ง€์…˜
๋ฐฑ๋„˜๋ฒ„

๋šœ๋”ฐ

FW

99

์ฟ ํ‚ค

FW

99

ํ™ฉ์Šน์ฃผ

DF

98

๋ฌด์Šคํƒ€ํŒŒ

MF

77

๋‹ค๋ณด

FW

63

๋‹ค์˜ค

DF

61

๊น€์ถฉํ˜ธ

GK

60

์ตœ๋™์šฐ

GK

60

์ตœ์ฃผํ˜ธ

GK

51

์•ˆ๋™์›

DF

49

์˜ค์žฌ์ง„

DF

49

:

:

:

12 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

[์˜ˆ์ œ] DEPT ํ…Œ์ด๋ธ” ์ •๋ณด๋ฅผ ๋ถ€์„œ๋ช…, ์ง€์—ญ, ๋ถ€์„œ๋ฒˆํ˜ธ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. ์•„๋ž˜์˜ SQL ๋ฌธ์žฅ์€ ์ถœ๋ ฅ๋˜๋Š” ์นผ๋Ÿผ ๋ ˆ์ด๋ธ”์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค.

Case1. ์นผ๋Ÿผ๋ช… ์‚ฌ์šฉ ORDER BY ์ ˆ ์‚ฌ์šฉ

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

DNAME
LOC
DEPTNO

ACCOUNTING

NEWYORK

10

OPERATIONS

BOSTON

40

RESEARCH

DALLAS

20

SALES

CHICAGO

30

4 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Case2. ์นผ๋Ÿผ๋ช… + ALIAS ๋ช… ์‚ฌ์šฉ ORDER BY ์ ˆ ์‚ฌ์šฉ

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

DEPT
AREA
DEPTNO

ACCOUNTING

NEWYORK

10

OPERATIONS

BOSTON

40

RESEARCH

DALLAS

20

SALES

CHICAGO

30

4 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Case3. ์นผ๋Ÿผ ์ˆœ์„œ๋ฒˆํ˜ธ + ALIAS ๋ช… ์‚ฌ์šฉ ORDER BY ์ ˆ ์‚ฌ์šฉ

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

DNAME
AREA
DEPTNO

ACCOUNTING

NEWYORK

10

OPERATIONS

BOSTON

40

RESEARCH

DALLAS

20

SALES

CHICAGO

30

4 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2. SELECT ๋ฌธ์žฅ ์‹คํ–‰ ์ˆœ์„œ

GROUP BY ์ ˆ๊ณผ ORDER BY๊ฐ€ ๊ฐ™์ด ์‚ฌ์šฉ๋  ๋•Œ SELECT ๋ฌธ์žฅ์€ 6๊ฐœ์˜ ์ ˆ๋กœ ๊ตฌ์„ฑ์ด ๋˜๊ณ , SELECT ๋ฌธ์žฅ์˜ ์ˆ˜ํ–‰ ๋‹จ๊ณ„๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • โ‘  ๋ฐœ์ทŒ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•œ๋‹ค. (FROM)

  • โ‘ก ๋ฐœ์ทŒ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€ ์ œ๊ฑฐํ•œ๋‹ค. (WHERE)

  • โ‘ข ํ–‰๋“ค์„ ์†Œ๊ทธ๋ฃนํ™” ํ•œ๋‹ค. (GROUP BY)

  • โ‘ฃ ๊ทธ๋ฃนํ•‘๋œ ๊ฐ’์˜ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒƒ๋งŒ์„ ์ถœ๋ ฅํ•œ๋‹ค. (HAVING)

  • โ‘ค ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ถœ๋ ฅ/๊ณ„์‚ฐํ•œ๋‹ค. (SELECT)

  • โ‘ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•œ๋‹ค. (ORDER BY)

์œ„ ์ˆœ์„œ๋Š” ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ SQL ๋ฌธ์žฅ์˜ SYNTAX, SEMANTIC ์—๋Ÿฌ๋ฅผ ์ ๊ฒ€ํ•˜๋Š” ์ˆœ์„œ์ด๊ธฐ๋„ ํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด FROM ์ ˆ์— ์ •์˜๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์„ WHERE ์ ˆ, GROUP BY ์ ˆ, HAVING ์ ˆ, SELECT ์ ˆ, ORDER BY ์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ORDER BY ์ ˆ์—๋Š” SELECT ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์€ ๋ฌธ์žํ˜• ํ•ญ๋ชฉ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, SELECT DISTINCT๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ SQL ๋ฌธ์žฅ์— GROUP BY ์ ˆ์ด ์žˆ๊ฑฐ๋‚˜ ๋˜๋Š” SELECT ๋ฌธ์— UNION ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์œผ๋ฉด ์—ด ์ •์˜๊ฐ€ SELECT ๋ชฉ๋ก์— ํ‘œ์‹œ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ๋•Œ ํ–‰ ๋‹จ์œ„๋กœ ๋ชจ๋“  ์นผ๋Ÿผ์„ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋˜๋ฏ€๋กœ, SELECT ์ ˆ์—์„œ ์ผ๋ถ€ ์นผ๋Ÿผ๋งŒ ์„ ํƒํ•˜๋”๋ผ๋„ ORDER BY ์ ˆ์—์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” ๋‹ค๋ฅธ ์นผ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. SQL ๋ฌธ์žฅ ์‹คํ–‰ ์ˆœ์„œ๋Š” ์˜ค๋ผํด ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ SQL ๋ฌธ์žฅ์„ ํ•ด์„ํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ์ด๋ฏ€๋กœ, SQL ๋ฌธ์žฅ์ด ์‹ค์ œ๋กœ ์‹คํ–‰๋˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ๊ฐ€ ์•„๋‹˜์„ ์œ ์˜ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค. SQL ๋ฌธ์žฅ์ด ์‹ค์ œ ์ˆ˜ํ–‰๋˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋Š” ์‹คํ–‰๊ณ„ํš์— ์˜ํ•ด ์ •ํ•ด์ง„๋‹ค.

[์˜ˆ์ œ] SELECT ์ ˆ์— ์—†๋Š” EMP ์นผ๋Ÿผ์„ ORDER BY ์ ˆ์— ์‚ฌ์šฉํ•œ๋‹ค.

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

EMPNO
ENAME

7902

FORD

7788

SCOTT

7900

JAMES

7499

ALLEN

7521

WARD

7844

TURNER

7654

MARTIN

7934

MILLER

7876

ADAMS

7698

BLAKE

7566

JONES

7782

CLARK

7369

SMITH

7839

KING

14 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ORDER BY ์ ˆ์—์„œ SELECT ์ ˆ์—์„œ ์ •์˜ํ•˜์ง€ ์•Š์€ ์นผ๋Ÿผ์„ ์‚ฌ์šฉํ•ด๋„ ๋ฌธ์ œ์—†์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

[์˜ˆ์ œ] ์ธ๋ผ์ธ ๋ทฐ์— ์ •์˜๋œ SELECT ์นผ๋Ÿผ์„ ๋ฉ”์ธ์ฟผ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.

[์˜ˆ์ œ]

14 ๊ฐœ์˜ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ์—์„œ 2์žฅ์—์„œ ๋ฐฐ์šธ ์ธ๋ผ์ธ ๋ทฐ์˜ SELECT ์ ˆ์—์„œ ์ •์˜ํ•œ ์นผ๋Ÿผ์€ ๋ฉ”์ธ์ฟผ๋ฆฌ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

[์˜ˆ์ œ] ์ธ๋ผ์ธ ๋ทฐ์— ๋ฏธ์ •์˜๋œ ์นผ๋Ÿผ์„ ๋ฉ”์ธ์ฟผ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค.

[์˜ˆ์ œ]

  • ERROR: "MGR": ๋ถ€์ ํ•ฉํ•œ ์‹๋ณ„์ž

๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ SELECT ์ ˆ์—์„œ ์„ ํƒ๋˜์ง€ ์•Š์€ ์นผ๋Ÿผ๋“ค์€ ๊ณ„์† ์œ ์ง€๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. (์ธ๋ผ์ธ ๋ทฐ๋„ ๋™์ผํ•จ) GROUP BY ์ ˆ์—์„œ ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€์„ ์ •์˜ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๋ฐ˜์ ์ธ SELECT ๋ฌธ์žฅ์ฒ˜๋Ÿผ FROM ์ ˆ์— ์ •์˜๋œ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, GROUP BY ์ ˆ์˜ ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€์— ์‚ฌ์šฉ๋œ ์นผ๋Ÿผ๊ณผ ์ง‘๊ณ„ ํ•จ์ˆ˜์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ์นผ๋Ÿผ๋“ค์˜ ์ง‘ํ•ฉ์„ ์ƒˆ๋กœ ๋งŒ๋“ ๋‹ค. GROUP BY ์ ˆ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€์— ์‚ฌ์šฉ๋œ ์นผ๋Ÿผ๊ณผ ์ง‘๊ณ„ ํ•จ์ˆ˜์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ ์นผ๋Ÿผ๋“ค์˜ ์ง‘ํ•ฉ์„ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š”๋ฐ, ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ๋Š” ํ•„์š” ์—†์œผ๋ฏ€๋กœ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. GROUP BY ์ดํ›„ ์ˆ˜ํ–‰ ์ ˆ์ธ SELECT ์ ˆ์ด๋‚˜ ORDER BY ์ ˆ์—์„œ ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ SELECT ์ ˆ์—์„œ๋Š” ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€๊ณผ ์ˆซ์ž ํ˜•์‹ ์นผ๋Ÿผ์˜ ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋ฃนํ•‘ ๊ธฐ์ค€ ์™ธ์˜ ๋ฌธ์ž ํ˜•์‹ ์นผ๋Ÿผ์€ ์ •ํ•  ์ˆ˜ ์—†๋‹ค.

[์˜ˆ์ œ] GROUP BY ์ ˆ ์‚ฌ์šฉ์‹œ SELECT ์ ˆ์— ์ผ๋ฐ˜ ์นผ๋Ÿผ์„ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค.

[์˜ˆ์ œ]

  • ERROR: GROUP BY ํ‘œํ˜„์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.

[์˜ˆ์ œ] GROUP BY ์ ˆ ์‚ฌ์šฉ์‹œ ORDER BY ์ ˆ์— ์ผ๋ฐ˜ ์นผ๋Ÿผ์„ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค.

[์˜ˆ์ œ]

  • ERROR: GROUP BY ํ‘œํ˜„์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.

[์˜ˆ์ œ] GROUP BY ์ ˆ ์‚ฌ์šฉ์‹œ ORDER BY ์ ˆ์— ์ง‘๊ณ„ ์นผ๋Ÿผ์„ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค.

[์˜ˆ์ œ]

[์‹คํ–‰ ๊ฒฐ๊ณผ]

SELECT SQL์—์„œ GROUP BY ์ ˆ์ด ์‚ฌ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— SELECT ์ ˆ์— ์ •์˜ํ•˜์ง€ ์•Š์€ MAX, SUM, COUNT ์ง‘๊ณ„ ํ•จ์ˆ˜๋„ ORDER BY ์ ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์‹คํ–‰ ๊ฒฐ๊ณผ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ถœ์ฒ˜ : ๋ฐ์ดํ„ฐ์˜จ์—์–ด โ€“ ํ•œ๊ตญ๋ฐ์ดํ„ฐ์‚ฐ์—…์ง„ํฅ์›(https://dataonair.or.krarrow-up-right)

Last updated