yeony._.
๐Ÿข์ฝฉ๋ถ€๐Ÿข
yeony._.
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (99)
    • ๐Ÿ’ปProgramming (91)
      • โ˜•๏ธJava (19)
      • ๐Ÿ’ฝOracle (21)
      • ๐Ÿ‘ฉ‍๐ŸŽจHTML&CSS (12)
      • ๐ŸŽจ ์‹ค์Šต (4)
      • ๐Ÿƒ‍โ™€๏ธJavaScript (25)
      • JSP (8)
      • ๐ŸƒSpring (0)
      • ๐Ÿฅงpython (0)
      • API (0)
      • ๐Ÿ˜ˆGit (1)
    • ๐ŸคซPrivate (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • ๐Ÿ˜ŽProject (4)
      • ๐Ÿ—“๏ธwbs ํ”„๋กœ์ ํŠธ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • HTML #CSS #HTML์ด๋ฏธ์ง€ #HTML์ด๋ฏธ์ง€์—๊ธ€์”จ #HTML์ด๋ฏธ์ง€์—์ด๋ฏธ์ง€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
yeony._.

๐Ÿข์ฝฉ๋ถ€๐Ÿข

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Oracle] 12C ๋ณ€๊ฒฝ ์‚ฌํ•ญ

2022. 8. 16. 14:03

Top-N ๊ธฐ๋Šฅ

์ˆœ์„œ๊ฐ€ ์ง€์ •๋œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์—์„œ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต

์ƒ์œ„ ๋˜๋Š” ํ•˜์œ„"N"๊ฐœ์˜ ํ–‰์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง• ํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉ

SELECT select_list FROM ํ…Œ์ด๋ธ”๋ช… 
WHERE where_clause
ORDER order_by_clause
row_limiting_clause;

 

แ†žOFFSET : ๊ฑด๋„ˆ๋›ธ ํ–‰์ˆ˜๋ฅผ ์ง€์ •

 ์Œ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด offset์€ 0์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, NULL ๋˜๋Š” ์กฐํšŒ๋˜๋Š” ํ–‰์ˆ˜ ๋ณด๋‹ค ํฌ๋ฉด 0๊ฐœ์˜ ํ–‰์„ ๋ฐ˜ํ™˜

 ์ƒ๋žตํ•˜๋ฉด offset๋Š” 0์ด๋ฉฐ ํ–‰ ์ œํ•œ์ด ์ฒซ ๋ฒˆ์งธ ํ–‰์œผ๋กœ ์‹œ์ž‘

แ†žROW | ROWS : ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
แ†žFETCH : ๋ฆฌํ„ดํ•  ํ–‰์ˆ˜ ๋˜๋Š” ๋ฐฑ๋ถ„์œจ์„ ์ง€์ •. ์ด ์ ˆ์„ ์ƒ๋žตํ•˜๋ฉด offset+1 ๋ถ€ํ„ฐ ๋ชจ๋“  ํ–‰์„ ๋ฐ˜ํ™˜

แ†žFIRST | NEXT : ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•จ 
แ†žrowcount | percent PERCENT : rowcount๋Š” ํ–‰์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, PERCENT๋Š” ๋ฐฑ๋ถ„์œจ์„ ์ง€์ •ํ•จ 

แ†žROW | ROWS : ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
แ†žONLY | WITH TIES : ์ง€์ •๋œ ์ˆ˜์˜ ํ–‰ ๋˜๋Š” ๋ฐฑ๋ถ„์œจ์„ ์ •ํ™•ํ•˜๊ฒŒ ๋ฆฌํ„ด ํ•˜๋ ค๋ฉด ONLY๋ฅผ ์ง€์ •ํ•˜๋ฉฐ, 

   ๋งˆ์ง€๋ง‰ ํ–‰ fetch์™€ ๋™์ผํ•œ ์ •๋ ฌ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ํ–‰์„ ๋ฆฌํ„ด ํ•˜๋ ค๋ฉด WITH TIES๋ฅผ ์ง€์ •.

   WITH TIES๋ฅผ ์ง€์ •ํ•˜๋ฉด order_by_clause๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•จ. order_by_clause๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ถ”๊ฐ€ ํ–‰์ด ๋ฆฌํ„ด โŒ

 

์ฒ˜์Œ ๋ ˆ์ฝ”๋“œ์—์„œ 3๊ฐœ๋งŒ ์ถœ๋ ฅ 

SELECT * FROM emp
FETCH FIRST 3 ROWS ONLY;

 

๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜์—ฌ ์ฒ˜์Œ ๋ ˆ์ฝ”๋“œ๋ถ€ํ„ฐ 3๊ฐœ๋งŒ ์ถœ๋ ฅ 

 SELECT * FROM emp
 ORDER BY sal DESC
 FETCH FIRST 3 ROWS ONLY;

 

์ •๋ ฌํ•˜์—ฌ ์ƒ์œ„ 10%๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ 

SELECT * FROM emp
ORDER BY sal DESC
FETCH FIRST 10 PERCENT ROWS ONLY;

 

ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ 

๊ฒŒ์‹œํŒ์˜ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ ๋“ฑ์— ์‚ฌ์šฉ๋จ 

 

1) ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ 11g  ์ค‘์š”!!! โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ

SELECT * FROM (
    SELECT ROWNUM rnum, tb.* FROM (
        SELECT name, sal 
        FROM emp
        ORDER BY sal DESC
    ) tb WHERE ROWNUM <= 30
) WHERE rnum >=21;

offset์„ ์ด์šฉํ•ด์„œ ํŠน์ • ๋ฐ์ดํ„ฐ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ

 

2) ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ 12g โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ

SELECT name, sal 
FROM emp
ORDER BY sal DESC
OFFSET 20 ROWS FETCH FIRST 10 ROWS ONLY;

 

MariaDB/MySQL ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ 

20๊ฐœ๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  10๊ฐœ ๊ฐ€์ ธ์˜ค๊ธฐ 

SELECT name, sal 
FROM emp
ORDER BY sal DESC 
ORDER BY sal DESC
LIMIT 20, 10;

 

    yeony._.
    yeony._.
    ํž˜ ์„ธ์ง€๋Š” ์•Œ์•ฝ๐Ÿ’Š๐Ÿ’Š๐Ÿ’Š

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