[SQLD] SQL ๊ธฐ๋ณธ - ํ•จ์ˆ˜, GROUP BY, HAVING, ORDER BY

2022. 11. 5. 03:29ยท๐Ÿ“์ž๊ฒฉ์ฆ ๊ณต๋ถ€/๐Ÿ“™ SQLD
๋ฐ˜์‘ํ˜•

ํ•จ์ˆ˜

- ๋‚ด์žฅํ˜• ํ•จ์ˆ˜ : ๋ฌธ์žํ˜• ํ•จ์ˆ˜, ์ˆซ์žํ˜• ํ•จ์ˆ˜, ๋‚ ์งœํ˜• ํ•จ์ˆ˜, ๋ณ€ํ™˜ํ˜• ํ•จ์ˆ˜ , NULL ๊ด€๋ จ ํ•จ์ˆ˜

 

- ๋ฌธ์žํ˜• ํ•จ์ˆ˜ 

๋ฌธ์žํ˜• ํ•จ์ˆ˜ ํ•จ์ˆ˜ ์„ค๋ช…
LOWER(๋ฌธ์ž์—ด) ๋ฌธ์ž์—ด์„ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ
UPPER(๋ฌธ์ž์—ด) ๋ฌธ์ž์—ด์„ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ
ASCII(๋ฌธ์ž) ๋ฌธ์ž๋ฅผ ASCII ์ฝ”๋“œ ๋ฒˆํ˜ธ๋กœ ๋ณ€๊ฒฝ
CHR/CHAR(ASCII๋ฒˆํ˜ธ) ASCII ์ฝ”๋“œ ๋ฒˆํ˜ธ๋ฅผ ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋กœ ๋ณ€๊ฒฝ
CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2) ๋ฌธ์ž์—ด1๊ณผ ๋ฌธ์ž์—ด2๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค => Oracle์€ ||  / SQL์€ +
SUBSTR/SUBSTRING(๋ฌธ์ž์—ด,  m,  n) ๋ฌธ์ž์—ด์„ m์œ„์น˜์—์„œ n๊ฐœ์˜ ๋ฌธ์ž๋งŒ ์ถœ๋ ฅ => n์—†์œผ๋ฉด ๋๊นŒ์ง€
LENGTH/LEN(๋ฌธ์ž์—ด) ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ˆซ์ž๊ฐ’์œผ๋กœ ์ถœ๋ ฅ
LTRIM(๋ฌธ์ž์—ด, ์ง€์ •๋ฌธ์ž) ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฌธ์ž๋ถ€ํ„ฐ '์ง€์ •๋ฌธ์ž' ์ œ๊ฑฐ
RTRIM(๋ฌธ์ž์—ด, ์ง€์ •๋ฌธ์ž) ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ถ€ํ„ฐ '์ง€์ •๋ฌธ์ž' ์ œ๊ฑฐ
TRIM(๋ฌธ์ž์—ด, ์ง€์ •๋ฌธ์ž) ๋ฌธ์ž์—ด์˜ ์–‘์ชฝ์—์„œ '์ง€์ •๋ฌธ์ž' ์ œ๊ฑฐ
  • TRIM ์„ธ์ข…๋ฅ˜์˜ ๊ฒฝ์šฐ '์ง€์ •๋ฌธ์ž'๊ฐ€ ์—†๋‹ค๋ฉด ๊ณต๋ฐฑ ์ œ๊ฑฐ => SQL์€ ๊ณต๋ฐฑ์ œ๊ฑฐ๋งŒ ๊ฐ€๋Šฅ

 

- ์ˆซ์žํ˜• ํ•จ์ˆ˜

์ˆซ์žํ˜• ํ•จ์ˆ˜ ํ•จ์ˆ˜ ์„ค๋ช…
ABS(์ˆซ์ž) ์ˆซ์ž์˜ ์ ˆ๋Œ€๊ฐ’ ์ถœ๋ ฅ
SIGN(์ˆซ์ž) ์ˆซ์ž๊ฐ€ ์–‘์ˆ˜(1)์ธ์ง€, ์Œ์ˆ˜(-1)์ธ์ง€, 0 ์ธ์ง€๋ฅผ ์ถœ๋ ฅ
MOD(์ˆซ์ž1, ์ˆซ์ž2) ์ˆซ์ž1์„ ์ˆซ์ž2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์ถœ๋ ฅ
CEIL/CEILING(์ˆซ์ž) ์ˆซ์ž๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ตœ์†Œ ์ •์ˆ˜ ์ถœ๋ ฅ (์˜ฌ๋ฆผ)
FLOOR(์ˆซ์ž) ์ˆซ์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ตœ์†Œ ์ •์ˆ˜ ์ถœ๋ ฅ (๋‚ด๋ฆผ)
ROUND(์ˆซ์ž, m) ์ˆซ์ž๋ฅผ ์†Œ์ˆ˜์  m์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ =>m์—†์œผ๋ฉด ๊ธฐ๋ณธ 0
TRUNC(์ˆซ์ž, m) ์ˆซ์ž๋ฅผ ์†Œ์ˆ˜์  m์ž๋ฆฌ์—์„œ ๋ฒ„๋ฆผํ•˜์—ฌ ์ถœ๋ ฅ  =>m์—†์œผ๋ฉด ๊ธฐ๋ณธ 0
SIN, COS, TAN ... ์ˆซ์ž์˜ ์‚ผ๊ฐํ•จ์ˆ˜ ๊ฐ’์„ ์ถœ๋ ฅ
EXP(), POWER(), SQRT(), LOG(), LN() ์ˆซ์ž์˜ ์ง€์ˆ˜, ๊ฑฐ๋“ญ์ œ๊ณฑ, ์ œ๊ณฑ๊ทผ, ์ž์—ฐ ๋กœ๊ทธ ๊ฐ’์„ ์ถœ๋ ฅ

 

- ๋‚ ์งœํ˜• ํ•จ์ˆ˜

๋‚ ์งœํ˜• ํ•จ์ˆ˜ ํ•จ์ˆ˜ ์„ค๋ช…
SYSDATE / GETDATE() ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ ์ถœ๋ ฅ
EXTRACT('YEAR'|'MONTH'|'DAY' from d) /
DATEPART('YEAR'|'MONTH'|'DAY', d) 
๋‚ ์งœ ๋ฐ์ดํ„ฐ์—์„œ ๋…„/์›”/์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ (์‹œ๊ฐ„/๋ถ„/์ดˆ๋„ ๊ฐ€๋Šฅ)
TO_NUMBER(TO_CHAR(d,'YYYY')) / YEAR(d)
TO_NUMBER(TO_CHAR(d,'MM')) / MONTH(d)
TO_NUMBER(TO_CHAR(d,'DD')) / DAY(d)
๋‚ ์งœ ๋ฐ์ดํ„ฐ์—์„œ ๋…„/์›”/์ผ ๋ฐ์ดํ„ฐ๋ฅด ใ„น์ถœ๋ ฅ

 

- NULL ๊ด€๋ จ ํ•จ์ˆ˜

์ผ๋ฐ˜ํ˜• ํ•จ์ˆ˜ ํ•จ์ˆ˜ ์„ค๋ช…
NVL(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2) / ISNULL(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2) ํ‘œํ˜„์‹1์˜ ๊ฒฐ๊ณผ๊ฐ’์ด NULL์ด๋ฉด ํ‘œํ˜„์‹2 ์ถœ๋ ฅ (๋‘˜์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์ด ๊ฐ™์•„์•ผํ•จ)
NULLIF(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2) ํ‘œํ˜„์‹1์ด ํ‘œํ˜„์‹2์™€ ๊ฐ™์œผ๋ฉด NULL, ๊ฐ™์ง€์•Š์œผ๋ฉด ํ‘œํ˜„์‹1 ์ถœ๋ ฅ
COALESCE(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2, ...) NULL์ด ์•„๋‹Œ ์ตœ์ดˆ์˜ ํ‘œํ˜„์‹ ์ถœ๋ ฅ (๋ชจ๋‘ NULL์ด๋ฉด NULL์ถœ๋ ฅ)

 


 

์ง‘๊ณ„ ํ•จ์ˆ˜

- ํŠน์ง•

  • ์—ฌ๋Ÿฌ ํ–‰๋“ค์˜ ๊ทธ๋ฃน์ด ๋ชจ์—ฌ์„œ ๊ทธ๋ฃน๋‹น ๋‹จ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.
  • SELECT ์ ˆ, HAVING ์ ˆ, ORDER BY ์ ˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ์ข…๋ฅ˜

์ง‘๊ณ„ ํ•จ์ˆ˜  ์‚ฌ์šฉ ๋ชฉ์ 
COUNT(*) NULL ๊ฐ’์„ ํฌํ•จํ•œ ํ–‰์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ
COUNT(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์˜ ๊ฐ’์ด NULL ๊ฐ’์ธ ๊ฒƒ์„ ์ œ์™ธํ•œ ํ–‰์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ
SUM(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์ด NULL์ธ ๊ฐ’์„ ์ œ์™ธํ•œ ํ•ฉ๊ณ„ ์ถœ๋ ฅ
AVG(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์ด NULL์ธ ๊ฐ’์„ ์ œ์™ธํ•œ ํ‰๊ท  ์ถœ๋ ฅ
MAX(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์˜ ์ตœ๋Œ€๊ฐ’ ์ถœ๋ ฅ
MIN(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์˜ ์ตœ์†Œ๊ฐ’ ์ถœ๋ ฅ
STDDEV(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์˜ ํ‘œ์ค€ ํŽธ์ฐจ ์ถœ๋ ฅ
VARIAN(ํ‘œํ˜„์‹) ํ‘œํ˜„์‹์˜ ๋ถ„์‚ฐ ์ถœ๋ ฅ
๊ธฐํƒ€ ํ†ต๊ณ„ ํ•จ์ˆ˜ ๋ฒคํ„ฐ๋ณ„๋กœ ๋‹ค์–‘ํ•œ ํ†ต๊ณ„์‹ ์ œ๊ณต

 


 

GROUP BY ์ ˆ

SELECT ์ปฌ๋Ÿผ๋ช…1
FROM ํ…Œ์ด๋ธ”๋ช… GROUP BY ์ปฌ๋Ÿผ๋ช…1;

#ex)ํ•™์ƒ ๋ช…๋‹จ์—์„œ ๊ฐ ํ•™๋…„ ์ˆ˜ ์ถœ๋ ฅ
SELECT grade ํ•™๋…„, COUNT(*) ์ธ์›์ˆ˜
FROM student GROUP BY grade;

 


 

HAVING

- WHERE์ ˆ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๊ทธ๋ฃน์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์˜ ํ–‰์— ์กฐ๊ฑด์ด ์ ์šฉ๋œ๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

 

- ์ง‘๊ณ„ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค (WHERE์ ˆ์€ ์‚ฌ์šฉX)

 


 

ORDER BY

- ์ •๋ ฌ

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

 

-  ํŠน์ง•

  • SQL ๋ฌธ์žฅ์˜ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ๋‹ค.
  • ๊ธฐ๋ณธ ์ •๋ ฌ ์ˆœ์„œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ(ASC)์ด๋‹ค.
  • Oracle์€ NULL๊ฐ’์„ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
  • SQL์€ NULL๊ฐ’์„  ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
  • ์นผ๋Ÿผ๋ช…, ALIAS๋ช…, ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ๊ฐ™์ด ํ˜ผ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 


 

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

  1. FROM ํ…Œ์ด๋ธ”๋ช…
  2. WHERE ์กฐ๊ฑด์‹
  3. GROUP BY ์นผ๋Ÿผ์ด๋‚˜ ํ‘œํ˜„์‹
  4. HAVING ๊ทธ๋ฃน์กฐ๊ฑด์‹
  5. SELECT ์นผ๋Ÿผ๋ช… ALIAS๋ช…
  6. ORDER BY ์นผ๋Ÿผ์ด๋‚˜ ํ‘œํ˜„์‹;

=> ํ…Œ์ด๋ธ” ์ฐธ์กฐ -> ํ•ด๋‹น ์•„๋‹Œ๊ฒƒ ์ œ๊ฑฐ -> ํ–‰๋“ค์„ ์†Œ๊ทธ๋ฃนํ™” -> ๊ทธ๋ฃนํ•‘๋œ๊ฒƒ ์กฐ๊ฑด ๋ถ€์—ฌ -> ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ -> ๋ฐ์ดํ„ฐ ์ •๋ ฌ

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“์ž๊ฒฉ์ฆ ๊ณต๋ถ€ > ๐Ÿ“™ SQLD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[SQLD] SQL ํ™œ์šฉ  (0) 2022.11.05
[SQLD] SQL ๊ธฐ๋ณธ - ์กฐ์ธ JOIN  (0) 2022.11.05
[SQLD] SQL ๊ธฐ๋ณธ  (0) 2022.11.04
[SQLD] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ  (0) 2022.11.04
[SQLD] ์—”ํ„ฐํ‹ฐ, ์†์„ฑ, ๊ด€๊ณ„, ์‹๋ณ„์ž  (0) 2022.10.20
'๐Ÿ“์ž๊ฒฉ์ฆ ๊ณต๋ถ€/๐Ÿ“™ SQLD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [SQLD] SQL ํ™œ์šฉ
  • [SQLD] SQL ๊ธฐ๋ณธ - ์กฐ์ธ JOIN
  • [SQLD] SQL ๊ธฐ๋ณธ
  • [SQLD] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ
yujch
yujch
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€ ๋ฉ”๋ชจ
    ๋ฐ˜์‘ํ˜•
  • yujch
    โœŽRepository
    yujch
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (95)
      • ๐Ÿ“Language (42)
        • ๐ŸŒ HTML (3)
        • ๐ŸŸจ Javascript (4)
        • ๐ŸŸฃ PHP (9)
        • ๐ŸŸข Node.js (6)
        • โ˜• Java (10)
        • โž• Python (9)
        • ๐Ÿ”ต C (1)
      • ๐Ÿ“Framework (11)
        • ๐Ÿƒ Spring (1)
        • ๐ŸŽต Laravel (9)
        • ๐Ÿš„ Express (1)
      • ๐Ÿ“DB (7)
        • ๐Ÿฌ MySQL (6)
        • ๐Ÿ˜ PostgreSQL (1)
      • ๐Ÿ“DevOps (6)
      • ๐Ÿ“Book (2)
      • ๐Ÿ“ETC. (16)
        • โš’๏ธ Tool (11)
        • ๐Ÿชข API Connection (5)
      • ๐Ÿ“์ž๊ฒฉ์ฆ ๊ณต๋ถ€ (10)
        • ๐Ÿ“™ SQLD (7)
        • ๐Ÿ“™ ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ (3)
      • ๐Ÿ“˜ ๋…ธํŠธ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿ ํ™ˆ
    • ๐Ÿ“ฎ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Github
  • ์ธ๊ธฐ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
yujch
[SQLD] SQL ๊ธฐ๋ณธ - ํ•จ์ˆ˜, GROUP BY, HAVING, ORDER BY
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”