ROW-NUMBER()函式

wmlm發表於2007-04-23

ROW_NUMBER() OVER (ORDER BY SUM(amount) DESC) AS row_number

[@more@]

SQL> SELECT

2 prd_type_id,SUM(amount),

3 ROW_NUMBER() OVER (ORDER BY SUM(amount) DESC) AS row_number

4 FROM all_sales

5 WHERE year=2003

6 GROUP BY prd_type_id

7 ORDER BY prd_type_id;

PRD_TYPE_ID SUM(AMOUNT) ROW_NUMBER

----------- ----------- ----------

1 905081.84 2

2 186381.22 5

3 478270.91 3

4 402751.16 4

5 1

這裡ROW-NUMBER()函式就相當於RANK()函式。

總結:在上面介紹的這些評級函式中其中RANK()、DENSE-RANK()、PERCENT-RANK()函式是比較常用的(相對於其他幾個而言),因此我們最好要掌握而其他幾個大家只要知道了解就可以了。

以上是網友的筆記,以下是我的試驗:

select prd_type_id,sum(amount),

row_number() over(order by sum(amount) desc) as row_number

from all_sales

where year=2003

group by prd_type_id;

PRD_TYPE_ID SUM(AMOUNT) ROW_NUMBER

----------- ----------- ----------

5 null 1

4 699054.57 2

1 349535.92 3

7 349529.76 4

6 349529.66 5

2 349527.34 6

3 349526.62 7

這玩意兒在開發中我用到了分頁中,較之前的JAVA程式設計師所做的分頁方式效率提高、程式碼簡化.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-912071/,如需轉載,請註明出處,否則將追究法律責任。

相關文章