{"id":7680,"date":"2019-09-20T12:55:31","date_gmt":"2019-09-20T19:55:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7680"},"modified":"2025-06-13T17:21:53","modified_gmt":"2025-06-14T00:21:53","slug":"deep-dive-window-functions-in-couchbase-analytics","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/deep-dive-window-functions-in-couchbase-analytics\/","title":{"rendered":"\uc2ec\uce35 \ubd84\uc11d: \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4\uc758 \ucc3d \uae30\ub2a5"},"content":{"rendered":"<p><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 6.5\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-couchbase-server-6-5-0-beta-whats-new-and-improved\/\"><span style=\"font-weight: 400\">\uc0c8\ub85c\uc6b4 \uae30\ub2a5<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref1\">1<\/a>\ub97c \uc120\ub3c4\uc801\uc778 NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uc804\ud658\ud569\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400\">N1QL \ucffc\ub9ac \uc5b8\uc5b4\uc5d0 \ucd94\uac00\ub41c \uc8fc\uc694 \uae30\ub2a5 \uc911 \ud558\ub098\ub294 \ucc3d \ud568\uc218\uc5d0 \ub300\ud55c \uc9c0\uc6d0\uc785\ub2c8\ub2e4.\u00a0<\/span><span style=\"font-weight: 400\">\uc774\ub7ec\ud55c \ud568\uc218\ub294 \uc6d0\ub798 SQL:2003 \ud45c\uc900\uc5d0 \ub3c4\uc785\ub418\uc5c8\uc73c\uba70 \uc5ec\ub7ec \ubcf5\uc7a1\ud55c \ube44\uc988\ub2c8\uc2a4 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uace0\uc131\ub2a5 \uc751\ub2f5 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ucc3d \ud568\uc218\ub294 \uc774\uc804\uc5d0 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/tag\/analytical-functions\/\"><span style=\"font-weight: 400\">\uac8c\uc2dc\ubb3c<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref2\">2<\/a>], [<a href=\"#ref3\">3<\/a>], [<a href=\"#ref4\">4<\/a>], \uc774\ubc88 \ud3b8\uc5d0\uc11c\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4\uc5d0\uc11c\uc758 \uad6c\ud604\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uadf8\ub9ac\uace0 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-couchbase-6-0\/\"><span style=\"font-weight: 400\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4 \uc11c\ube44\uc2a4<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref5\">5<\/a>\ub294 Couchbase \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc5d0\uc11c \ubcf5\uc7a1\ud55c \uc560\ub4dc\ud639 \ucffc\ub9ac\ub97c \ucc98\ub9ac\ud558\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud575\uc2ec \uad6c\uc131 \uc694\uc18c\ub294 \uc6b4\uc601 \ub370\uc774\ud130 \ub178\ub4dc\uc758 \uc6cc\ud06c\ub85c\ub4dc \uaca9\ub9ac\ub97c \ubcf4\uc7a5\ud558\uae30 \uc704\ud574 \ud074\ub7ec\uc2a4\ud130\uc758 \ubcc4\ub3c4 \ub178\ub4dc \uc138\ud2b8\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 MPP \ucffc\ub9ac \uc5d4\uc9c4\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec Analytics\ub85c \uc218\uc9d1\ub429\ub2c8\ub2e4. <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/couchbases-history-everything-dcp\/\"><span style=\"font-weight: 400\">DCP \ubcc0\uacbd \ud504\ub85c\ud1a0\ucf5c<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref6\">6<\/a>] \ubc0f \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ubaa8\ub4e0 Analytics \ub178\ub4dc \uac04\uc5d0 \ud574\uc2dc \ubd84\ud560\ub429\ub2c8\ub2e4. MPP \ucffc\ub9ac \ud504\ub85c\uc138\uc11c\ub294 \ub2e8\uc77c \ucffc\ub9ac\ub97c \ud558\uc704 \uc791\uc5c5\uc73c\ub85c \ub098\ub204\uace0 \ubaa8\ub4e0 \ub178\ub4dc\uc5d0\uc11c \ubcd1\ub82c\ub85c \uc2e4\ud589\ub418\ub3c4\ub85d \uc608\uc57d\ud558\uc5ec \ud544\uc694\ud55c \uacbd\uc6b0 \ub370\uc774\ud130\ub97c \ub2e4\uc2dc \ubd84\ud560\ud569\ub2c8\ub2e4. \uc804\uccb4 \uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ucd5c\uadfc \uc791\uc131\ub41c <\/span><a href=\"https:\/\/www.vldb.org\/pvldb\/vol12\/p2275-hubail.pdf\"><span style=\"font-weight: 400\">VLDB 2019 \ub17c\ubb38<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref7\">7<\/a>] \ubc0f <\/span><a href=\"https:\/\/www.youtube.com\/watch?v=1dN11TUj58c\"><span style=\"font-weight: 400\">\ub3d9\uc601\uc0c1 \ucc44\ub110<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref8\">8<\/a>].<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-7681 aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/HTAP.png\" alt=\"Figure 1: Couchbase Analytics Service\" width=\"729\" height=\"422\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/HTAP.png 729w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/HTAP-300x174.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/HTAP-20x12.png 20w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/p>\n<p style=\"text-align: center\"><strong>\uadf8\ub9bc 1: Couchbase \ubd84\uc11d \uc11c\ube44\uc2a4<\/strong><\/p>\n<p><span style=\"font-weight: 400\">\ucc3d \ud568\uc218\ub294 \ub610\ud55c Analytics \ucffc\ub9ac \uc5d4\uc9c4\uc5d0 \uc758\ud574 \ubd84\uc0b0\ub41c \ud30c\ud2f0\uc158 \ubcd1\ub82c \ubc29\uc2dd\uc73c\ub85c \ud3c9\uac00\ub429\ub2c8\ub2e4. \ucffc\ub9ac \ucef4\ud30c\uc77c\ub7ec\ub294 \ucc3d \ud568\uc218 \ud638\ucd9c\uc758 \uacb0\uacfc\ub97c \uacc4\uc0b0\ud558\uae30 \uc704\ud574 \ud568\uaed8 \uc791\ub3d9\ud558\ub294 \uc5ec\ub7ec \uc5f0\uc0b0\uc790\uac00 \ud3ec\ud568\ub41c \uc2e4\ud589 \uacc4\ud68d\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uc774 \uc2e4\ud589 \uacc4\ud68d\uc774 \ud074\ub7ec\uc2a4\ud130\uc758 \ubaa8\ub4e0 Analytics \ub178\ub4dc\ub85c \uc804\uc1a1\ub418\uc5b4 \uac01 \uc5f0\uc0b0\uc790\uac00 \uc785\ub825 \ub370\uc774\ud130\uc758 \ud30c\ud2f0\uc158\uc5d0\uc11c \uc791\uc5c5\ud569\ub2c8\ub2e4. \uc2e4\ud589 \uc5d4\uc9c4\uc740 \uc5f0\uc0b0\uc790 \uc2e4\ud589\uc744 \uc870\uc815\ud558\uace0 \ucffc\ub9ac \uacb0\uacfc\ub97c \ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uac01 \ubd80\uc11c\uc758 \uc9c1\uc6d0\ub4e4\uc758 \uae09\uc5ec\ub97c \uae30\uc900\uc73c\ub85c \uc21c\uc704\ub97c \ub9e4\uae30\ub294 \ub2e4\uc74c \ucffc\ub9ac\ub97c \uc0dd\uac01\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"top-margin:24 bottom-margin:24 whitespace-before:1 whitespace-after:1 lang:plsql decode:true\">SELECT RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank, \r\n       employee_id, department_id, salary\r\nFROM employee<\/pre>\n<p><span style=\"font-weight: 400\">\ucffc\ub9ac \ud504\ub85c\uc138\uc11c\ub294 \uadf8\ub9bc 2\uc5d0 \ud45c\uc2dc\ub41c \ub300\ub85c \uc774 \ud568\uc218\ub97c \uc138 \ub2e8\uacc4\ub85c \ud3c9\uac00\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p style=\"text-align: center\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7682 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/CBASDeepDiveWinFunFigure2.png\" alt=\"Figure 2: Distributed, parallel query execution of window functions\" width=\"880\" height=\"416\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure2.png 880w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure2-300x142.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure2-768x363.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure2-20x9.png 20w\" sizes=\"auto, (max-width: 880px) 100vw, 880px\" \/><\/p>\n<p style=\"text-align: center\"><strong>\uadf8\ub9bc 2: \ucc3d \ud568\uc218\uc758 \ubd84\uc0b0, \ubcd1\ub82c \ucffc\ub9ac \uc2e4\ud589<\/strong><\/p>\n<ol>\n<li><span style=\"font-weight: 400\">\uc9c1\uc6d0 \ub370\uc774\ud130 \uc9d1\ud569\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc120\ud0dd\ud55c \ud6c4\uc5d0\ub294 OVER \uc808\uc758 PARTITION BY \ud558\uc704 \uc808\uc5d0 \ub530\ub77c \ub2e4\uc2dc \ud30c\ud2f0\uc158\uc774 \uc9c0\uc815\ub429\ub2c8\ub2e4. \ucd08\uae30 \ub370\uc774\ud130 \ub808\uc774\uc544\uc6c3\uc5d0\ub294 \uac01 \ubd80\uc11c \ub808\ucf54\ub4dc\uac00 \uc5ec\ub7ec Analytics \ub178\ub4dc\uc758 \uc5ec\ub7ec \uc2a4\ud1a0\ub9ac\uc9c0 \ud30c\ud2f0\uc158\uc5d0 \ud769\uc5b4\uc838 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud30c\ud2f0\uc158 \uc7ac\ubd84\ud560 \ub2e8\uacc4\uac00 \ub05d\ub098\uba74 \ub2e8\uc77c \ubd80\uc11c\uc758 \ubaa8\ub4e0 \uc9c1\uc6d0 \uae30\ub85d\uc774 \ub3d9\uc77c\ud55c \uacc4\uc0b0 \ud30c\ud2f0\uc158\uc5d0 \ub3c4\ucc29\ud569\ub2c8\ub2e4. \ud30c\ud2f0\uc158 \uc7ac\ubd84\ud560 \ub2e8\uacc4\ub294 \ud074\ub7ec\uc2a4\ud130\uc758 \ubaa8\ub4e0 \ub178\ub4dc\/\ud30c\ud2f0\uc158\uc5d0\uc11c \ubcd1\ub82c\ub85c \uc2e4\ud589\ub429\ub2c8\ub2e4. \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 Analytics \uad6c\uc131\uc5d0\uc11c\ub294 \ub370\uc774\ud130 \ud30c\ud2f0\uc158 \uc218\uc640 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \uc0ac\uc6a9 \uac00\ub2a5\ud55c CPU \ucf54\uc5b4 \uc218 \uac04\uc5d0 \uc77c\ub300\uc77c \uad00\uacc4\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<li><span style=\"font-weight: 400\">\uac01 \ubd80\uc11c \ub0b4\uc758 \ub808\ucf54\ub4dc\ub294 OVER \uc808\uc758 ORDER BY \ud558\uc704 \uc808\uc5d0 \ub530\ub77c \uc815\ub82c\ub429\ub2c8\ub2e4. \uac01 \ubd80\uc11c\uc758 \ub808\ucf54\ub4dc\uac00 \ud574\ub2f9 \uacc4\uc0b0 \ud30c\ud2f0\uc158\uc5d0 \ub3c4\ucc29\ud558\uba74 \ucffc\ub9ac \ud504\ub85c\uc138\uc11c\uac00 \ub370\uc774\ud130 \uc815\ub82c\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4. \uc774 \uc815\ub82c \ub2e8\uacc4\ub294 \ubaa8\ub4e0 Analytics \ub178\ub4dc\uc5d0\uc11c\ub3c4 \ubcd1\ub82c\ub85c \uc218\ud589\ub429\ub2c8\ub2e4.<\/span><\/li>\n<li><span style=\"font-weight: 400\">\uadf8\ub7f0 \ub2e4\uc74c \uac01 \ubd80\uc11c \ub0b4\uc5d0\uc11c \uc815\ub82c\ub41c \ub808\ucf54\ub4dc\uc5d0 \ub300\ud574 RANK() \ud568\uc218\ub97c \uacc4\uc0b0\ud569\ub2c8\ub2e4. \uc774 \ud2b9\uc815 \ud568\uc218\ub294 \ud604\uc7ac \ub808\ucf54\ub4dc\ub9cc \ubcf4\uace0 \uc774\uc804 \ub808\ucf54\ub4dc\uc640 \ube44\uad50\ud558\uba74 \ub418\ubbc0\ub85c \ucd94\uac00 \ub370\uc774\ud130 \uad6c\uccb4\ud654 \uc5c6\uc774 \uc2a4\ud2b8\ub9ac\ubc0d \ubc29\uc2dd\uc73c\ub85c \ud3c9\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ubaa8\ub4e0 \ub178\ub4dc\uc5d0\uc11c \uc774\ub7ec\ud55c \ub2e8\uacc4\ub97c \ubcd1\ub82c\ub85c \uc2e4\ud589\ud558\uba74 Analytics\uac00 \ud074\ub7ec\uc2a4\ud130\uc758 \ubaa8\ub4e0 \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ud544\uc694\ud55c \uc131\ub2a5 \ubaa9\ud45c\ub97c \ub2ec\uc131\ud558\uae30 \uc704\ud574 \ub354 \ub9ce\uc740 \ub178\ub4dc\ub97c \ucd94\uac00\ud560 \ub54c \uc120\ud615 \ud655\uc7a5\uc131\uc744 \ub2ec\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\ucffc\ub9ac \uc2e4\ud589 \uacc4\ud68d \ub0b4\uc5d0\uc11c \uc704\uc758 \ub2e8\uacc4\ub97c \uc5b4\ub5bb\uac8c \uc2dd\ubcc4\ud560 \uc218 \uc788\ub294\uc9c0 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. Analytics \uc124\uba85 \uacc4\ud68d \uae30\ub2a5\uc5d0 \ub300\ud55c \uc124\uba85\uc740 <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/analytics-explain-plan-part-1\/\"><span style=\"font-weight: 400\">\uc774\uc804 \uac8c\uc2dc\ubb3c<\/span><\/a><span style=\"font-weight: 400\"> [<a href=\"#ref9\">9<\/a>], \ub530\ub77c\uc11c \uc5ec\uae30\uc11c\ub294 \ucc3d \uae30\ub2a5 \ud3c9\uac00\uc640 \uad00\ub828\ub41c \uacc4\ud68d \uc870\uac01\uc5d0\ub9cc \ucd08\uc810\uc744 \ub9de\ucda5\ub2c8\ub2e4. (Analytics \ucffc\ub9ac \uacc4\ud68d\uc740 \uc544\ub798\uc5d0\uc11c \uc704\ub85c \uc77d\uc5b4\uc57c \ud55c\ub2e4\ub294 \uc810\uc744 \uae30\uc5b5\ud558\uc138\uc694.)<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7687 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/CBASDeepDiveWinFunFigure3v2-e1569011246976.png\" alt=\"Figure 3: Fragment of the query execution plan\" width=\"861\" height=\"826\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure3v2-e1569011246976.png 861w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure3v2-e1569011246976-300x288.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure3v2-e1569011246976-768x737.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/CBASDeepDiveWinFunFigure3v2-e1569011246976-20x20.png 20w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><\/p>\n<p style=\"text-align: center\"><strong>\uadf8\ub9bc 3: \ucffc\ub9ac \uc2e4\ud589 \uacc4\ud68d\uc758 \uc77c\ubd80\ubd84<\/strong><\/p>\n<p><span style=\"font-weight: 400\">\"data-scan\" \uc5f0\uc0b0\uc790\uc5d0 \uc758\ud574 \uc9c1\uc6d0 \ub370\uc774\ud130 \uc138\ud2b8\uc5d0\uc11c \ub370\uc774\ud130\uac00 \uc77d\ud600\uc9c0\uace0 \ub370\uc774\ud130 \uc7ac\ubd84\ud560\uc744 \ub2f4\ub2f9\ud558\ub294 \"exchange\" \uc5f0\uc0b0\uc790\uc5d0\uac8c \uc804\ub2ec\ub429\ub2c8\ub2e4. \uc7ac\ubd84\ud560 \ud544\ub4dc\ub294 PARTITION BY \ud558\uc704 \uc808\uc5d0\uc11c \uc694\uccad\ud55c \ub300\ub85c \"department_id\"\uc785\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \"order\" \uc5f0\uc0b0\uc790\ub294 ORDER BY \ud558\uc704\uc808\uc5d0 \ub530\ub77c \ub370\uc774\ud130\ub97c \uc815\ub82c\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c, \"window-aggregate\" \uc5f0\uc0b0\uc790\ub294 RANK() \ud568\uc218\ub97c \uacc4\uc0b0\ud569\ub2c8\ub2e4. \uc774 \uc5f0\uc0b0\uc790\uc758 \"physical-operator\" \uac12\uc774 \"WINDOW_STREAM\"\uc73c\ub85c \uc124\uc815\ub418\uc5b4 \uc788\ub294\ub370, \uc774\ub294 \uc5f0\uc0b0\uc790\uac00 \uc2a4\ud2b8\ub9ac\ubc0d \ubc29\uc2dd\uc73c\ub85c \uc791\ub3d9\ud558\uba70 \ucd94\uac00 \ub370\uc774\ud130 \uad6c\uccb4\ud654\uac00 \ud544\uc694\ud558\uc9c0 \uc54a\uc74c\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \"\uc2e4\ud589 \ubaa8\ub4dc\" \ud544\ub4dc\ub294 \ubaa8\ub4e0 \uc5f0\uc0b0\uc790\uc5d0 \ub300\ud574 \"PARTITIONED\"\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \ud074\ub7ec\uc2a4\ud130\uc758 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ubaa8\ub4e0 \uacc4\uc0b0 \ud30c\ud2f0\uc158\uc5d0\uc11c \ubaa8\ub450 \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc77c\ubd80 \ucc3d \ud568\uc218\ub97c \ud3c9\uac00\ud558\ub824\uba74 \uc804\uccb4 \ub17c\ub9ac\uc801 \ud30c\ud2f0\uc158(\uc608\ub97c \ub4e4\uc5b4 NTILE() \ubc0f PERCENTILE_RANK() \ud568\uc218\uc758 \ucd1d \ud29c\ud50c \uc218)\uacfc \uad00\ub828\ub41c \uc815\ubcf4 \ub610\ub294 \uc804\uccb4 \ud30c\ud2f0\uc158\uc5d0 \ub300\ud55c \uc5ec\ub7ec \ubc18\ubcf5(\uc9d1\uacc4 \ud568\uc218\uc758 \ucc3d \ud504\ub808\uc784\uc744 \uacc4\uc0b0\ud560 \ub54c)\uc774 \ud544\uc694\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud568\uc218\ub294 \ube44\uc2a4\ud2b8\ub9ac\ubc0d \ucc3d \uc5f0\uc0b0\uc790\uc5d0 \uc758\ud574 \ucc98\ub9ac\ub429\ub2c8\ub2e4. \ube44\uc2a4\ud2b8\ub9ac\ubc0d \uc708\ub3c4\uc6b0 \uc5f0\uc0b0\uc790\ub294 \ucffc\ub9ac \uc2e4\ud589 \uacc4\ud68d\uc5d0\uc11c \"WINDOW\"\uc758 \"\ubb3c\ub9ac\uc801 \uc5f0\uc0b0\uc790\" \uac12\uc73c\ub85c \uc2dd\ubcc4\ub429\ub2c8\ub2e4. \uc5f0\uc0b0\uc790\ub294 \ud55c \ubc88\uc5d0 \ud558\ub098\uc758 \ub17c\ub9ac\uc801 \ud30c\ud2f0\uc158\uc744 \uad6c\uccb4\ud654\ud55c \ub2e4\uc74c \ud574\ub2f9 \ud30c\ud2f0\uc158\uc758 \uac01 \ud29c\ud50c\uc5d0 \ub300\ud574 \uc708\ub3c4\uc6b0 \ud568\uc218 \uacc4\uc0b0\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4. \uc784\uc758\uc758 \uc591\uc758 \ub4e4\uc5b4\uc624\ub294 \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud558\uae30 \uc704\ud574 \uc6b4\uc601\uc790\ub294 Analytics \uc2e4\ud589 \uc5d4\uc9c4\uc758 \uba54\ubaa8\ub9ac \uad00\ub9ac \ubaa8\ub378\uc744 \ub530\ub985\ub2c8\ub2e4. \ucffc\ub9ac \ud50c\ub798\ub108\ub294 \uac01 \uc5f0\uc0b0\uc790\uc5d0\uac8c \uba54\ubaa8\ub9ac \uc608\uc0b0\uc744 \ud560\ub2f9\ud569\ub2c8\ub2e4. \ucffc\ub9ac \uc2e4\ud589 \uc911\uc5d0\ub294 \uc774 \uc608\uc0b0\uc744 \ucd08\uacfc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc608\uc0b0\uc744 \ucd08\uacfc\ud558\ub294 \uc6b4\uc601 \ub370\uc774\ud130\ub294 \uac01 \uc6b4\uc601\uc790\uac00 \ub514\uc2a4\ud06c\uc5d0 \ud758\ub824\ubcf4\ub0b4\uace0 \ub098\uc911\uc5d0 \uba54\ubaa8\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c \ub418\uba74 \ub2e4\uc2dc \uc77d\uc2b5\ub2c8\ub2e4. \ucffc\ub9ac\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \uc5ec\ub7ec \uc5f0\uc0b0\uc790\ub85c \uad6c\uc131\ub418\ubbc0\ub85c \ub7f0\ud0c0\uc784\uc5d0 \ucd08\uacfc\ud560 \uc218 \uc5c6\ub294 \uc804\uc5ed \uba54\ubaa8\ub9ac \uc608\uc0b0\uc774 \uc788\uc2b5\ub2c8\ub2e4. Analytics \ucffc\ub9ac \ud504\ub85c\uc138\uc11c\ub294 \ub4e4\uc5b4\uc624\ub294 \ucffc\ub9ac\uc5d0 \ub300\ud574 \ub9ac\uc18c\uc2a4 \uae30\ubc18 \ub85c\ub4dc \uc81c\uc5b4\ub97c \uad6c\ud604\ud558\uc5ec \ubaa8\ub4e0 \ub178\ub4dc\uc5d0\uc11c \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uba54\ubaa8\ub9ac \ub0b4\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \ucffc\ub9ac\ub9cc \ud5c8\uc6a9\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\ub610\ud55c \ubd84\uc11d\uc6a9 N1QL\uc740 \ucc3d \ud568\uc218 \ud638\ucd9c\uc758 \uad6c\ubb38 \ucee8\ud14d\uc2a4\ud2b8\uc5d0 \ub300\ud55c \uc81c\ud55c\uc774 \ub354 \uc801\uc2b5\ub2c8\ub2e4. SQL\uacfc \ub2ec\ub9ac, N1QL for Analytics\uc758 \ucffc\ub9ac\ub294 WHERE \ubc0f HAVING \uc808\ubfd0\ub9cc \uc544\ub2c8\ub77c N1QL \uc804\uc6a9 LET \uc808\uc5d0\uc11c\ub3c4 \ucc3d \ud568\uc218\ub97c \ud5c8\uc6a9\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\uc608\ub97c \ub4e4\uc5b4, \uc6d0\ub798 \ucffc\ub9ac\ub294 \uac01 \ubd80\uc11c\uc5d0\uc11c \uac00\uc7a5 \ub192\uc740 \uc9c1\uae09\uc744 \uac00\uc9c4 \uc9c1\uc6d0\ub9cc \ubc18\ud658\ud558\ub3c4\ub85d \uc27d\uac8c \uc218\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"whitespace-before:1 whitespace-after:1 lang:plsql decode:true\">SELECT employee_id, department_id, salary\r\nFROM employee\r\nWHERE RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) = 1<\/pre>\n<p><span style=\"font-weight: 400\">\uacb0\ub860\uc801\uc73c\ub85c, Analytics\uc758 \ucc3d \ud568\uc218\ub294 \ubcd1\ub82c \ub370\uc774\ud130 \ubd84\uc11d \ubc0f \ubcf4\uace0\ub97c \uc704\ud55c \uac15\ub825\ud55c \uba54\ucee4\ub2c8\uc998\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Couchbase N1QL \ucffc\ub9ac \uc5b8\uc5b4\ub97c \uc0ac\uc6a9\ud558\uba74 \uc0ac\uc6a9\uc790\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 JSON \ub370\uc774\ud130\uc5d0\uc11c \uc9c1\uc811 \uc774\ub7ec\ud55c \ud568\uc218\ub97c \uc27d\uac8c \ud3c9\uac00\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \ubcf5\uc7a1\ud55c ETL \ucc98\ub9ac\ub97c \ud53c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/downloads\/?family=server&amp;product=couchbase-server-developer\"><span style=\"font-weight: 400\">Couchbase Server 6.5 \ub2e4\uc6b4\ub85c\ub4dc<\/span><\/a><span style=\"font-weight: 400\"> \uc9c0\uae08 \ubc14\ub85c \ubb38\uc758\ud558\uc138\uc694. <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/c\/analytics\/\"><span style=\"font-weight: 400\">\ud3ec\ub7fc<\/span><\/a><span style=\"font-weight: 400\"> \uc73c\ub85c \ubb38\uc758\ud558\uc138\uc694.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">\ucc38\uc870<\/span><\/h4>\n<p><span style=\"font-weight: 400\"><a id=\"ref1\"><\/a>[1] Couchbase Server 6.5 GA \ubc1c\ud45c - \uc0c8\ub85c\uc6b4 \uae30\ub2a5 \ubc0f \uac1c\uc120 \uc0ac\ud56d<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-couchbase-server-6-5-0-beta-whats-new-and-improved\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/announcing-couchbase-server-6-5-0-whats-new-and-improved\/<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref2\"><\/a>[2] \ucc3d \uae30\ub2a5\uacfc \ub3d9\ub4f1\ud55c \uc218\uc900<\/span><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/on-par-with-window-functions-in-n1ql\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/on-par-with-window-functions-in-n1ql\/<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref3\"><\/a>[3] N1QL \ucc3d \ud568\uc218 \ubc0f CTE\ub85c \ub354 \ud070 \uadf8\ub9bc \uc5bb\uae30<\/span><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/get-a-bigger-picture-with-n1ql-window-functions-and-cte\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/get-a-bigger-picture-with-n1ql-window-functions-and-cte\/<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref4\"><\/a>[4] \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4\uc758 \ucc3d \uae30\ub2a5<\/span><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/window-functions-in-couchbase-analytics\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/window-functions-in-couchbase-analytics\/<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref5\"><\/a>[5] \uc560\ub110\ub9ac\ud2f1\uc2a4\uac00 \ud3ec\ud568\ub41c Couchbase Server 6.0 \ubc1c\ud45c<br \/>\n<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/announcing-couchbase-6-0\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/announcing-couchbase-6-0\/<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref6\"><\/a>[6] \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \ubaa8\ub4e0 \uac83\uc758 \uc5ed\uc0ac: DCP<br \/>\n<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/couchbases-history-everything-dcp\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/couchbases-history-everything-dcp\/<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref7\"><\/a>[7] \ubb34\ub974\ud0c0\ub2e4 \uc54c \ud6c4\ubc14\uc77c, \uc54c\ub9ac \uc54c\uc220\ub9ac\ub9cc, \ub9c8\uc774\ud074 \ube14\ub85c\uc6b0, \ub9c8\uc774\ud074 \uce90\ub9ac, \ub4dc\ubbf8\ud2b8\ub9ac \ub9ac\ucc28\uae34, \uc774\uc548 \ub9e5\uc2a8, \ud2f8 \uc6e8\uc2a4\ud2b8\ub9cc. \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4: \ud655\uc7a5 \uac00\ub2a5\ud55c NoSQL \ub370\uc774\ud130 \ubd84\uc11d\uc744 \uc704\ud55c NoETL. PVLDB, 12(12): 2275-2286, 2019<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><a href=\"https:\/\/www.vldb.org\/pvldb\/vol12\/p2275-hubail.pdf\"><span style=\"font-weight: 400\">https:\/\/www.vldb.org\/pvldb\/vol12\/p2275-hubail.pdf<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref8\"><\/a>[8] \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc560\ub110\ub9ac\ud2f1\uc2a4: Under the Hood - \ucee4\ub125\ud2b8 \uc2e4\ub9ac\ucf58 \ubc38\ub9ac 2018<br \/>\n<\/span><a href=\"https:\/\/www.youtube.com\/watch?v=1dN11TUj58c\"><span style=\"font-weight: 400\">https:\/\/www.youtube.com\/watch?v=1dN11TUj58c<\/span><\/a><br \/>\n<span style=\"font-weight: 400\"><a id=\"ref9\"><\/a>[9] \uc560\ub110\ub9ac\ud2f1\uc2a4 \ud50c\ub79c \uc124\uba85 - 1\ubd80<br \/>\n<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/analytics-explain-plan-part-1\/\"><span style=\"font-weight: 400\">https:\/\/www.couchbase.com\/blog\/analytics-explain-plan-part-1\/<\/span><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase Server 6.5 brings a host of new features [1] to the leading NoSQL database. One of the key additions to the N1QL query language is support for window functions.\u00a0These functions were originally introduced in the SQL:2003 standard and provide [&hellip;]<\/p>","protected":false},"author":45683,"featured_media":7111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2294,1816,1812],"tags":[2378,2306,2304],"ppma_author":[9094],"class_list":["post-7680","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","category-couchbase-server","category-n1ql-query","tag-6-5","tag-analytical-functions","tag-reporting"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Deep Dive: Window functions in Couchbase Analytics - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/deep-dive-window-functions-in-couchbase-analytics\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Dive: Window functions in Couchbase Analytics\" \/>\n<meta property=\"og:description\" content=\"Couchbase Server 6.5 brings a host of new features [1] to the leading NoSQL database. One of the key additions to the N1QL query language is support for window functions.\u00a0These functions were originally introduced in the SQL:2003 standard and provide [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/deep-dive-window-functions-in-couchbase-analytics\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-20T19:55:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:21:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image-1024x295.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"295\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dmitry Lychagin, Principal Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dmitry Lychagin, Principal Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/\"},\"author\":{\"name\":\"Dmitry Lychagin, Principal Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2610a4782c51bbd9b2a2f30e08b9dfc3\"},\"headline\":\"Deep Dive: Window functions in Couchbase Analytics\",\"datePublished\":\"2019-09-20T19:55:31+00:00\",\"dateModified\":\"2025-06-14T00:21:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/\"},\"wordCount\":1153,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"keywords\":[\"6.5\",\"analytical functions\",\"reporting\"],\"articleSection\":[\"Couchbase Analytics\",\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/\",\"name\":\"Deep Dive: Window functions in Couchbase Analytics - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"datePublished\":\"2019-09-20T19:55:31+00:00\",\"dateModified\":\"2025-06-14T00:21:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png\",\"width\":2048,\"height\":589},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Dive: Window functions in Couchbase Analytics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2610a4782c51bbd9b2a2f30e08b9dfc3\",\"name\":\"Dmitry Lychagin, Principal Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/1845089d3a8b23cae89dcb7e90a31686\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ee7b03111d3aa598e468501586d3008fcebe423cddf3f065f94acd0213ac8057?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ee7b03111d3aa598e468501586d3008fcebe423cddf3f065f94acd0213ac8057?s=96&d=mm&r=g\",\"caption\":\"Dmitry Lychagin, Principal Engineer, Couchbase\"},\"description\":\"Dmitry is a Principal Engineer working on Couchbase Analytics, focusing on its query compiler and the execution engine. He has more than 15 years of experience building enterprise software at Oracle, BEA Systems, and early-stage startups.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/dmitrylychagin\/\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/dmitry-lychagin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Deep Dive: Window functions in Couchbase Analytics - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/deep-dive-window-functions-in-couchbase-analytics\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Dive: Window functions in Couchbase Analytics","og_description":"Couchbase Server 6.5 brings a host of new features [1] to the leading NoSQL database. One of the key additions to the N1QL query language is support for window functions.\u00a0These functions were originally introduced in the SQL:2003 standard and provide [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/deep-dive-window-functions-in-couchbase-analytics\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-09-20T19:55:31+00:00","article_modified_time":"2025-06-14T00:21:53+00:00","og_image":[{"width":1024,"height":295,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image-1024x295.png","type":"image\/png"}],"author":"Dmitry Lychagin, Principal Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dmitry Lychagin, Principal Engineer, Couchbase","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/"},"author":{"name":"Dmitry Lychagin, Principal Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2610a4782c51bbd9b2a2f30e08b9dfc3"},"headline":"Deep Dive: Window functions in Couchbase Analytics","datePublished":"2019-09-20T19:55:31+00:00","dateModified":"2025-06-14T00:21:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/"},"wordCount":1153,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","keywords":["6.5","analytical functions","reporting"],"articleSection":["Couchbase Analytics","Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/","url":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/","name":"Deep Dive: Window functions in Couchbase Analytics - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","datePublished":"2019-09-20T19:55:31+00:00","dateModified":"2025-06-14T00:21:53+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/06\/Couchbase-Flora-Blog-Image.png","width":2048,"height":589},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/deep-dive-window-functions-in-couchbase-analytics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Deep Dive: Window functions in Couchbase Analytics"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2610a4782c51bbd9b2a2f30e08b9dfc3","name":"\ub4dc\ubbf8\ud2b8\ub9ac \ub9ac\ucc28\uae34, \uc218\uc11d \uc5d4\uc9c0\ub2c8\uc5b4, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/1845089d3a8b23cae89dcb7e90a31686","url":"https:\/\/secure.gravatar.com\/avatar\/ee7b03111d3aa598e468501586d3008fcebe423cddf3f065f94acd0213ac8057?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee7b03111d3aa598e468501586d3008fcebe423cddf3f065f94acd0213ac8057?s=96&d=mm&r=g","caption":"Dmitry Lychagin, Principal Engineer, Couchbase"},"description":"Dmitry is a Principal Engineer working on Couchbase Analytics, focusing on its query compiler and the execution engine. He has more than 15 years of experience building enterprise software at Oracle, BEA Systems, and early-stage startups.","sameAs":["https:\/\/www.linkedin.com\/in\/dmitrylychagin\/"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/dmitry-lychagin\/"}]}},"authors":[{"term_id":9094,"user_id":45683,"is_guest":0,"slug":"dmitry-lychagin","display_name":"Dmitry Lychagin, Principal Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ee7b03111d3aa598e468501586d3008fcebe423cddf3f065f94acd0213ac8057?s=96&d=mm&r=g","author_category":"","last_name":"Lychagin, Principal Engineer, Couchbase","first_name":"Dmitry","job_title":"","user_url":"","description":"Dmitry\ub294 \ucffc\ub9ac \ucef4\ud30c\uc77c\ub7ec\uc640 \uc2e4\ud589 \uc5d4\uc9c4\uc5d0 \uc911\uc810\uc744 \ub450\uace0 Couchbase Analytics\ub97c \uac1c\ubc1c\ud558\ub294 \uc218\uc11d \uc5d4\uc9c0\ub2c8\uc5b4\uc785\ub2c8\ub2e4.\r\n\uadf8\ub294 Oracle, BEA Systems \ubc0f \ucd08\uae30 \ub2e8\uacc4\uc758 \uc2a4\ud0c0\ud2b8\uc5c5\uc5d0\uc11c 15\ub144 \uc774\uc0c1 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uad6c\ucd95\ud55c \uacbd\ub825\uc744 \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/7680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/45683"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=7680"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/7680\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/7111"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=7680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=7680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=7680"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=7680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}