这个使用开窗函数怎么写SQL

更换

Latty 发布于 2020-9-27 14:57 (编辑于 2020-10-9 16:40)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
LarryAbbyLv5中级互助
发布于2020-9-27 15:02(编辑于 2020-9-27 15:35)

你这是要两个sql还是一个sql

第一个:

SELECT CLASSNO, NAME, GRADE
  FROM 表 T1,
       (SELECT STUDENTNO,
               ROW_NUMBER() OVER(PARTITION BY CLASSNO ORDER BY GRADE DESC) ROW_NUM
          FROM 表
         WHERE COURSE = 'English') T2
 WHERE T2.ROW_NUM = 1
   AND T1.STUDENTNO = T2.STUDENTNO


第二个sql

SELECT ROW_NUMBER() OVER(PARTITION BY 1 ORDER BY GRADE DESC) ROW_NUM,
       CLASSNO,
       NAME,
       GRADE
  FROM 表
 WHERE COURSE = 'English'
 ORDER BY GRADE DESC

  • Latty Latty(提问者) 两个sql
    2020-09-27 15:16 
  • Latty Latty(提问者) 谢谢大佬,我还有好几道难题,给我解答下吧
    2020-09-27 15:42 
  • Latty Latty(提问者) https://bbs.fanruan.com/wenda/question/57000.html
    2020-09-27 15:43 
  • LarryAbby LarryAbby 回复 Latty(提问者) 你这个问题好像已经解决了吧
    2020-09-28 09:53 
最佳回答
0
指间沙Lv6中级互助
发布于2020-9-27 15:32(编辑于 2020-9-27 15:41)

SELECT max(Grade),classno,name From www GROUP BY classno



SELECT @rank:=@rank + 1 AS PM,ClassNo,name,GRADE Form www where COURSE='english' ORDER BY Grade DESC,(SELECT @rank:= 0) b


  • 3关注人数
  • 461浏览人数
  • 最后回答于:2020-10-9 16:40
    请选择关闭问题的原因
    确定 取消
    返回顶部