☆用心生活☆-wonder-{改变自己才能让自己过上不一样的日子。为自己加油!}

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条数据,分组已经显示出了行号了。

 

posted @ 2012-08-11 17:58  ☆用心生活☆  阅读(1185)  评论(0编辑  收藏  举报
本作者写的任何文章均属原创,若要转载,请注明出处;若
进行与文章有关的商业行为,本作者保留拥有诉诸法律追究
侵权的任何行为。文章只代表本人某一学习时间段内对某一
技术的说明,不代表具有绝对的正确性,若要学习,请与各
位高手编程人员讨论学习。本文章也不代表自己某一时期某
一公司的任何专著和机密文件。仅仅提供自我学习和他人学
习的文章参考,以及自我知识记录。wanzegui325#163.com