<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] > [參考](https://zhuanlan.zhihu.com/p/92654574) ## 概述 窗口函數,也叫OLAP函數(Online Anallytical Processing,聯機分析處理),可以對數據庫數據進行實時分析處理 ``` <窗口函數> over (partition by <用于分組的列名> order by <用于排序的列名>) ``` <窗口函數>的位置,可以放以下兩種函數: 1. 專用窗口函數,包括后面要講到的rank, dense_rank, row_number等專用窗口函數。 2. 聚合函數,如sum. avg, count, max, min等 - 因為窗口函數是對where或者group by子句處理后的結果進行操作,所以窗口函數原則上只能寫在select子句中 - partition子句可是省略 ## 專用窗口函數rank ![](https://img.kancloud.cn/13/e3/13e32a8a796ae5e54af353573d78fe0c_633x471.png) 每個班級內按成績排名 ![](https://img.kancloud.cn/3b/7b/3b7b005f3911cb6f9016d69423c02d5e_633x474.png) 以班級“1”為例,這個班級的成績“95”排在第1位,這個班級的“83”排在第4位 ``` select *, rank() over (partition by 班級 order by 成績 desc) as ranking from 班級表 ``` ![](https://img.kancloud.cn/7b/bc/7bbcb78157e308b1a2cc9a6504e3d071_631x472.png) ## 其他專業窗口函數 專用窗口函數rank, dense_rank, row_number有什么區別呢? 它們的區別我舉個例子,你們一下就能看懂: ``` select *, rank() over (order by 成績 desc) as ranking, dense_rank() over (order by 成績 desc) as dese_rank, row_number() over (order by 成績 desc) as row_num from 班級表 ``` 結果 ![](https://img.kancloud.cn/5a/7e/5a7ede032d01b4195a3c6b280c88abb9_635x476.png) 1. rank函數:這個例子中是5位,5位,5位,8位,也就是如果有并列名次的行,會占用下一名次的位置。比如正常排名是1,2,3,4,但是現在前3名是并列的名次,結果是:1,1,1,4。 2. dense_rank函數:這個例子中是5位,5位,5位,6位,也就是如果有并列名次的行,不占用下一名次的位置。比3. 如正常排名是1,2,3,4,但是現在前3名是并列的名次,結果是:1,1,1,2。 row_number函數:這個例子中是5位,6位,7位,8位,也就是不考慮并列名次的情況。比如前3名是并列的名次,排名是正常的1,2,3,4。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看