• sql server 里的 over


    create table OverTableTest
    (
     id int identity(1,1),--ID
     Val int, --值
     typ int, --类型
    )
    go
    declare @cou int
    set @cou=1
    while @cou<50
    begin
     insert into OverTableTest
      select @cou,@cou%5+1
     
     set @cou=@cou+1
    end
    go

    select * from OverTableTest
    /*
     通常我们会用到的是情景是:分页(row_Number)
     示例:
    */
    ;with mycte as
    (
     select row=ROW_NUMBER() over (order by id desc) ,* from
     OverTableTest
    )select * from mycte where row BETWEEN 10 and 20
    /*
     在上面的情况下我经常用到,
     但是却一直没有追问 Over到底是做什么用的啊
    */
    /*
     应用环境2 分组获取前几名
     就好像,考试了,要获取每科排名前3的同学
     SQL:
    */
    ;with mycte as
    (
     select row=ROW_NUMBER() over (partition by typ order by val desc) ,* from
     OverTableTest
    )select * from mycte where row<=3
    /*
     在这个示例中 加上了partition by 就是进行分组统计了
     我们再来进行第三个示例:
     按照类别获取 类别数量,同时按照类别数量最多的排序
    */
    select Cunt=count(0) over(partition by typ) ,* from
     OverTableTest  order by Cunt desc,typ,id
    -----------------------------------------------------------------
    /*
     今天例子就说到这里了,运行结果 大家复制直接执行就好了
    */

    转的别人的

  • 相关阅读:
    python3.x 基础五:模块
    python3.x 基础四:目录获取及目录规范
    python3.x 基础四:json与pickple
    python3.x 基础四:生成器与迭代器
    python3.x 基础三:装饰器
    python3.x 基础三:函数
    [leetcode]Anagrams
    [leetcode]Text Justification
    [leetcode]Single Number
    [leetcode]Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/zziss/p/2766168.html
Copyright © 2020-2023  润新知