SQL語句練習(xí)實(shí)例之二——找出銷售冠軍
更新時(shí)間:2011年10月07日 00:27:05 作者:
在公司中,老板走進(jìn)來,要一張每個(gè)地區(qū)銷量前3名的銷售額與銷售員的報(bào)表
復(fù)制代碼 代碼如下:
--銷售冠軍
--問題:在公司中,老板走進(jìn)來,要一張每個(gè)地區(qū)銷量前3名的銷售額與銷售員的報(bào)表
---
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,'張鎮(zhèn)東',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語句會(huì)主動(dòng)把最小的那一個(gè)銷售額的所有行,都自動(dòng)刪除,只能得到比最小銷售額大的數(shù)據(jù)
--如果你的最小銷售額有3行,最大的只有一行,如地區(qū)5所示,只會(huì)得到最大的那一行。
--地區(qū)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()為每個(gè)分區(qū)中的每一行分配一個(gè)順序號(hào),如果有重復(fù)值,它們都將分配相同的順序號(hào)。
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
相關(guān)文章
SQLSERVER?出現(xiàn)死鎖查找方法和解決辦法(推薦)
這篇文章主要介紹了SQLSERVER?出現(xiàn)死鎖查找方法和解決辦法(推薦),文中講解了查詢死鎖語句,殺死死鎖的解決方法,需要的朋友可以參考下2024-02-02
學(xué)習(xí)SQL語句(強(qiáng)大的group by與select from模式)
本文介紹的是強(qiáng)大的group by使用與利用select from (select from)的模式生成SQL語句的代碼。2011-10-10
sqlserver 數(shù)據(jù)庫壓縮與數(shù)據(jù)庫日志(ldf)壓縮方法分享
數(shù)據(jù)庫在使用中,冗余的數(shù)據(jù)不斷的增加(數(shù)據(jù)刪除也不會(huì)減?。瑢?dǎo)致數(shù)據(jù)庫不斷的增大!所以該給你的數(shù)據(jù)庫減減肥了2011-12-12
SQL Server 獲取服務(wù)器時(shí)間的sql語句
這篇文章主要介紹了SQL Server 獲取服務(wù)器時(shí)間的sql語句,需要的朋友可以參考下2016-07-07
SQL Server查看login所授予的具體權(quán)限問題
在SQL Server數(shù)據(jù)庫中如何查看一個(gè)登錄名(login)的具體權(quán)限呢,下面腳本之家小編給大家?guī)砹薙QL Server查看login所授予的具體權(quán)限問題,感興趣的朋友一起看看吧2019-09-09
SQL?server數(shù)據(jù)庫日志文件收縮操作方法
日常使用數(shù)據(jù)庫可能存在日志每天增長10G或以上,太恐怖了!數(shù)據(jù)量過大導(dǎo)致服務(wù)器卡死,內(nèi)存溢出,執(zhí)行Sql過慢等問題,這篇文章主要給大家介紹了關(guān)于SQL?server數(shù)據(jù)庫日志文件收縮操作的相關(guān)資料,需要的朋友可以參考下2024-02-02
SQL Server數(shù)據(jù)庫中設(shè)置索引的策略分享
在 SQL Server 中,索引通過加快數(shù)據(jù)檢索速度在優(yōu)化查詢性能方面發(fā)揮著關(guān)鍵作用,在數(shù)據(jù)庫中設(shè)置索引的策略受數(shù)據(jù)庫結(jié)構(gòu)、表的大小和將要運(yùn)行的查詢類型的影響,以下是如何將索引應(yīng)用于這些不同類型的表的詳細(xì)分類,需要的朋友可以參考下2024-12-12

