≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

SQL Server SQL语句练习实例之二——找出销售冠军

人气:480 时间:2019-11-28

这篇文章主要为大家详细介绍了SQL Server SQL语句练习实例之二——找出销售冠军,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

代码如下:

 
--销售冠军 
--问题:在公司中,老板走进来,要一张每个地区销量前3名的销售额与销售员的报表 
--- 
create table salesdetail 
( 
Area int not null, 
Saler nvarchar(20) not null, 
SalerId int not null, 
Sales money not null 
) 
insert salesdetail 
select 1,'张三',15,3000 
union select 1,'赵一',16,3500 
union select 1,'钱二',17,4000 
union select 1,'孙三',18,5000 
union select 1,'李四',19,5000 
union select 1,'王五',11,7000 
union select 2,'周边一',25,3000 
union select 2,'李白',22,4000 
union select 2,'张镇东',23,6000 
union select 2,'李宁',24,1000 
union select 3,'李斯',35,3000 
union select 3,'李勇',33,2000 
union select 4,'李逵',44,5000 
union select 4,'宋江',45,5000 
union select 4,'吴用',42,13000 
union select 4,'公孙胜',43,23000 
union select 5,'阮小二',51,5000 
union select 5,'阮小五',52,5000 
union select 5,'林冲',53,5000 
union select 5,'林莽',54,6000 
go 
---以下这种写法SQL语句会主动把最小的那一个销售额的所有行,都自动删除,只能得到比最小销售额大的数据 
--如果你的最小销售额有3行,最大的只有一行,如地区5所示,只会得到最大的那一行。 
--地区4只能得到二行,原因同上。 
select * from salesdetail as a 
where sales >= (select min(b.sales) 
from salesdetail as b where a.Area=b.Area and a.Sales<=b.Sales 
--group by sales 
having COUNT(distinct b.Saler)<=3) 
order by a.Area,a.Sales desc,a.Saler,a.SalerId 
go 
---使用rank()为每个分区中的每一行分配一个顺序号,如果有重复值,它们都将分配相同的顺序号。 
select a.area,a.saler,seq from 
( 
select area,saler,RANK() over(PARTITION by area order by sales desc) as seq from salesdetail 
)a where seq<=3 
drop table salesdetail 

本文来自:http://www.q1010.com/179/8014-0.html

注:关于SQL Server SQL语句练习实例之二——找出销售冠军的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • SQL Server利用sys.sysprocesses检查SqlServer的阻塞和死锁
  • SQLServer 全文检索(full-text)语法
  • SQL Server 2000 升级到 SQLServer 2008 性能之需要注意的地方之一
  • SQL Server 一次性压缩Sqlserver2005中所有库日志的存储过程
  • SQLServer 跨库查询实现方法
  • SQL Server 数据库主键的生成方式小结(sqlserver,mysql)
  • SQL Server使用cmd命令行窗口操作SqlServer的方法
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析
  • SQL Server CREATE FUNCTION sqlserver用户定义函数
  • sqlserver 查询数据库大小的方法
上一篇:SQL Server 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法
下一篇:SQL Server 自动定时备份数据库示例
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。