MSSQL之2005版本之后的行号分区妙用:row_number() over(PARTITION BY X1,X2.. ORDER BY X1,X2... )
需求:我要选择所有店铺销售订单的前2比记录(根据订单日期排序)
就是我 按某些字段分组然后从每组取出最大的二条数据
SELECT *FROM (
SELECT rowid=ROW_NUMBER() over(PARTITION BY StoreName order by OrderDateTime), OrderNr,AreaName,CategoryName,BusinessName,StoreName FROM Order ) AS T where rowid<3
最后的rowid<3就是去最小的2条数据,分组已经显示出了行号了。