SQL学习之查询技巧 查询第3的数据 用一条语句分组,排序 并查询某一排名

想查询排名第3的人员名单

原数据表如下:

create   table  test
(
    name    
varchar ( 12 ),
    myValue    
int
)

insert   into  test 
        
select   ' zhang ' ,     80
union      select   ' wang ' ,     98
union      select   ' li ' ,     100
union      select   ' zhao ' ,     92
union      select   ' chen ' ,     82
union      select   ' qin ' ,     60
union      select   ' zhou ' ,     92

查询第3名的人员名单

SELECT   *
FROM    test a
WHERE   ( SELECT   Count ( DISTINCT  myvalue)
        
FROM    test
        
WHERE   myvalue  >=  a.myvalue)  =   3

结果

 

name         myValue
-- ---------- -----------
zhao          92
zhou         
92

(
2  行処理されました)

 查询前3名的人员名单


SELECT   *
FROM    test a
WHERE   ( SELECT   Count ( DISTINCT  myvalue)
        
FROM    test
        
WHERE   myvalue  >=  a.myvalue)  <= 3

结果

name         myValue
-- ---------- -----------
li            100
wang         
98
zhao         
92
zhou         
92

(
4  行処理されました)

 内容由http://community.csdn.net/Expert/topic/5346/5346530.xml?temp=.3626978整理而成。

谢谢luo2pei4321 (沛沛)  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值