zoukankan      html  css  js  c++  java
  • sqlserver中分区函数 partition by的用法

    partition  by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition  by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组

    create database StudentDB
    go

    use StudentDB
    go

    create table Student  --学生成绩表
    (
    id int,  --主键
    Grade int, --班级
    Score int --分数
    )
    go

    insert Student 
        select 1,1,88
    union all select 2,1,66
    union all select 3,1,75
    union all select 4,2,30
    union all select 5,2,70
    union all select 6,2,80
    union all select 7,2,60
    union all select 8,3,90
    union all select 9,3,70
    union all select 10,3,80

    go

    --所有学生信息
    select * from Student

    id          Grade       Score
    ----------- ----------- -----------
    1           1           88
    2           1           66
    3           1           75
    4           2           30
    5           2           70
    6           2           80
    7           2           60
    8           3           90
    9           3           70
    10          3           80

    (10 行受影响)

    --不分班按学生成绩排名
    select *,ROW_NUMBER() over(order by Score desc) as Sequence from Student

    id          Grade       Score       Sequence
    ----------- ----------- ----------- --------------------
    8           3           90          1
    1           1           88          2
    6           2           80          3
    10          3           80          4
    3           1           75          5
    9           3           70          6
    5           2           70          7
    2           1           66          8
    7           2           60          9
    4           2           30          10

    (10 行受影响)

    --分班后按学生成绩排名
    select *,row_number() over(partition by Grade order by Score desc) as Sequence from Student

    id          Grade       Score       Sequence
    ----------- ----------- ----------- --------------------
    1           1           88          1
    3           1           75          2
    2           1           66          3
    6           2           80          1
    5           2           70          2
    7           2           60          3
    4           2           30          4
    8           3           90          1
    10          3           80          2
    9           3           70          3

    (10 行受影响)

  • 相关阅读:
    醉上清新年中工作总结汇报模板免费下载_PPTX图片设计素材_包图网888pic.com
    清爽通用工作总结汇报ppt模板免费下载_PPTX图片设计素材_包图网888pic.com
    工作年终总结通用计划规划商务述职年会模板
    清新时尚岗位竞聘个人介绍PPT模板(8598)_竞聘简历PPT_素材在线
    横圆版简约清新通用工作述职报告PPT模板(8456)_其他商务PPT_素材在线
    2016年终总结工作汇报PPT模板
    绿色简约工作汇报计划总结PPT- 模板下载页_变色龙
    工作报告模板下载_免费工作报告图片设计素材_第2页_包图网
    Netflix新放出来的开源工具Chaos Monkey
    微喜帖,微信喜帖,电子喜帖,电子请柬
  • 原文地址:https://www.cnblogs.com/PearlRan/p/4833032.html
Copyright © 2011-2022 走看看