首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 问个关于排序的SQL语句问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 09:33:26 楼主
    原数据集
    type    score
    数学        80
    数学        90
    数学        60
    数学      100
    英语        70
    英语        60
    英语        50

    我想要取各学科分数排前2名的数据,sql语名要怎么写

    目标结果集
    type    score
    数学        100
    数学        90
    英语        70
    英语        60

    不要单独拿个学科出来排个序取前2条,最好一次全搞定的,有什么简便方法吗?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 10:57:081楼 得分:0
    SQL code
    Select * from tb a where (Select count(*) from tb where type=a.type and score>=a.score)<=2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 12:06:362楼 得分:0
    高手!!!!!!谢谢大哥~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 22:45:423楼 得分:0
    SQL code
    Select distinct Type,Score From (select Type,score,dense_rank() OVER (Partition by Type Order by Score desc ) as CC From ta ) a Where a.CC <=2


    .
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 22:48:294楼 得分:0

    SQL code
    select distinct Type,score From (select Type,Score, dense_rank() OVER ( Partition By Type Order by Score desc ) as CC From tb ) a where a.CC <=2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 22:48:535楼 得分:0


    select distinct Type,score
    From
      (select Type,Score, dense_rank() OVER ( Partition By Type Order by Score desc ) as CC From tb ) a
    where a.CC <=2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 22:49:066楼 得分:0

    SQL code
    select distinct Type,score From (select Type,Score, dense_rank() OVER ( Partition By Type Order by Score desc ) as CC From tb ) a where a.CC <=2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 22:49:197楼 得分:0

    select distinct Type,score
    From
      (select Type,Score, dense_rank() OVER ( Partition By Type Order by Score desc ) as CC From tb ) a
    where a.CC <=2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-23 22:49:488楼 得分:0
    select distinct Type,score
    From
      (select Type,Score, dense_rank() OVER ( Partition By Type Order by Score desc ) as CC From tb ) a
    where a.CC <=2
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 15:19:149楼 得分:0
    select * from (select type,score,row_number() over(partition by type order by score desc) num from tb ) as tt where num <=2;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 01:49:4310楼 得分:0
    不明LZ在说什么
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-01 14:00:0111楼 得分:0
    什么呀
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved