SQL
SELECT ROW_NUMBER() OVER (PARTITION BY categoryid ORDER BY unitprice, productid) AS rownum, categoryid, productid, productname,unitprice FROM Production.Products;
这个SQL查询结果如下。
但是我不明白ROW_NUMBER() OVER (PARTITION BY categoryid ORDER BY unitprice, productid) AS rownum
是什么意思。直到做了下面这个查询才明白:
SQL
SELECT categoryid,productid,productname,unitprice from Production.Products ORDER BY categoryid,unitprice, productid;
所谓的ROW_NUMBER()
就是对数据表格按categoryid
,unitprice
, productid
的优先级进行排序,取得排序号。但是当categoryid
值由1跳到2,或者由2跳到3的时候,排序号重新从1开始计数。