需求:取出每种分类里面的销售前3甲的产品信息

表设计如下图:

数据如下:

两种方法可以实现:

1.

SELECT * FROM
(
SELECT ROW_NUMBER() OVER(PARTITION BY categoryID ORDER BY saleNum desc) AS SaleSeq,* FROM productSale
) a
WHERE SaleSeq < 4

2.
SELECT * FROM dbo.ProductSale t
WHERE ProductID IN
(
 SELECT TOP 3 ProductID FROM dbo.ProductSale m
 WHERE m.CategoryID = t.CategoryID
 ORDER BY SaleNum DESC
)
ORDER BY t.CategoryID, t.SaleNum DESC

结果如下图:

说明:此2种方法可以在前3甲的产品销售数量不相等时准确查询出前3甲的产品销售信息,但如果前3甲中有销售数量相同的产品,

则有可能是少取了另一些产品,比如销售第一1种产品,销售第二1种产品,销售第三3种产品,

则会在销售第三的3种产品中取一个产品返回,其实是少了并列的2种产品的,此处需要注意。

最新文章

  1. 表格与ckeckbox的全选与单选
  2. 适配各种Windows分辨率,为DPI添加感知,当在高DPI时,禁用WINFORM缩放等。
  3. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
  4. es6 class
  5. 关于GPL的一些知识
  6. Nginx基础知识之————Nginx 环境的搭建?
  7. 原始套接字的简单tcp包嗅探
  8. ios开发跳转
  9. Tkinter教程之Event篇(2)
  10. flume 自己定义 hbase sink 类
  11. poj-2195-Going Home最小费用最大流
  12. PAT (Advanced Level) 1080. Graduate Admission (30)
  13. 初识hadoop-历史及其家族(日志一)
  14. 安卓一键分享到qq,微信,微博,官方SDK非第三方
  15. ansible-play中role的基本用法
  16. TCP连接与释放
  17. java.lang.Comparable 接口 详解
  18. android 开发 修改系统背景(状态栏颜色、导航栏颜色、标题栏颜色等等)
  19. 接口测试3-3Excel格式
  20. robotFramework--ride 问题:Data source does not exist.

热门文章

  1. Linux下/proc目录简介(转)
  2. 深入理解JavaScript系列(33):设计模式之策略模式(转)
  3. Android开发被添加到桌面快捷方式
  4. UVA No Tipping
  5. This Android SDK requires Android Developer Toolkit version 22.6.2 or above.
  6. bat(批处理文件)初步 第一篇 基本符号
  7. 第三篇——第二部分——第二文 计划搭建SQL Server镜像
  8. 缓存之EHCache(转)
  9. 随着MapReduce job实现去加重,多种输出文件夹
  10. SQL Server 2008 R2 安全性专题(一):安全原则