SQL语句实践示例二:找到销售冠军

复制代码代码如下所示:
-销售冠军
问题是:在公司里,老板来了,想要在每个领域前3名的销售和销售人员的声明。

创建表salesdetail

区域无效,
Saler nvarchar(20)不为空,
salerid INT NOT NULL,
销售金额不为零

插入salesdetail
选择1,张三,153000
联合精选1,赵一,163500
联合精选1,钱二,174000
联合选择1,太阳三,185000
联盟选择1,'李四',195000
联盟选择1,国王五,117000
联合选择2,'外围',253000
联盟选择2,'李杜',224000
联盟选择2,张振东,236000
联盟选择2,'衬里',241000
联合精选3,'酒糟',353000
联盟选择3,'李咏',332000
联盟选择4,' Lee Kui ',445000
联合精选4,'宋',455000
联合精选4,吴,4213000
联盟选择4,' 4323000 '男性孙胜。
联盟选择5,红色小第二,515000
联盟选择5,'阮晓戊',525000
联合精选5,林,535000
联盟选择5,丛林,546000

下面的SQL语句自动删除最小销售量的所有行,并且只能获得大于最小销售额的数据。
如果你的最小销售量有3条线,最大的一条线只有一条线,如5区所示,它只会得到最大的线。
- 4区只能有两条线,出于同样的原因。
SELECT * FROM salesdetail作为
在销售(b.sales)(选择> = min
从salesdetail为B,面积= b.area和a.sales <= b.sales
——按销售额分组
具有计数(不同的b.saler)< = 3)
A.地区秩序,A.销售降序,a. Saler,a.salerid

-使用秩()为每个分区中的每一行分配一个序列号,如果有重复值,它们都分配相同的订单号。
选择面积,a.saler,以次从

选择区域,售货员,秩()在(分区面积按销量降序)
a序列< = 3
salesdetail表