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表